-
Notifications
You must be signed in to change notification settings - Fork 15
Tutorial Guide for Running Parallelization-based Software in Cheaha #768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
Premas
wants to merge
19
commits into
uabrc:main
Choose a base branch
from
Premas:feat-parallelism
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
1d3a6b2
intro section parallelization
Premas d4270d5
section heading changed
Premas d94c656
Merge branch 'main' into feat-parallelism
Premas b73ece4
typos
Premas 6c0d397
add index
Premas 8ecb3ff
Merge branch 'main' into feat-parallelism
Premas 88664b2
inputs and perf
Premas c51984e
adding gpu results
Premas 14a8485
Merge branch 'main' into feat-parallelism
Premas 36be978
added images
Premas 832bd6d
update build env
Premas 8757e2b
typo
Premas bc77122
drawio udpate
Premas 4c1d11a
add md045
Premas 88c78f1
QE
Premas 619fbe4
Merge branch 'main' into feat-parallelism
Premas 58072be
merge main into feat-parallelism
Premas 5b1f3cf
drawio package added
Premas 9a54e04
Revert "merge main into feat-parallelism"
Premas File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| # Tutorial on Usage of Parallelization-based Software in Cheaha | ||
|
|
||
| ## Sequential Execution | ||
|
|
||
| Breaking a bigger problem into set of tasks, and executing these tasks one by one on a single CPU. | ||
|
|
||
| ## Parallel Execution | ||
|
|
||
| Divide a larger problem into a series of smaller tasks and execute these tasks using multiple CPUs. The application should leverage parallelization technology to utilize multicore processors, multiple nodes, multiple GPUs, or a hybrid approach (such as combining CPUs and GPUs). | ||
|
|
||
| ## Parallelization Categories | ||
|
|
||
| ### Shared Memory Parallelization | ||
|
|
||
| In this method, your job executes independent tasks on separate cores within the same compute node. These tasks share the node's resources and communicate by reading from and writing to shared memory. | ||
|
|
||
| For instance, OpenMP is a parallel directive that supports shared memory parallelization. | ||
|
|
||
| ### Distributed Memory Parallelization | ||
|
|
||
| Tasks can be distributed on different compute nodes and executed. The tasks communicate each other using message passing. A widely used standard to achieve this kind of parallelism is Message Passing Interface (MPI). | ||
|
|
||
| ## Software Packages that Support Parallelization | ||
|
Premas marked this conversation as resolved.
Outdated
|
||
|
|
||
| ### Gromacs | ||
|
|
||
| Gromacs is specifically meant for high-performance molecular dynamics and analysis. | ||
|
|
||
| Recent Gromacs version available in Cheaha can be loaded as, | ||
|
|
||
| ```bash | ||
| $module load rc/GROMACS/2022.3-gpu | ||
| ``` | ||
|
|
||
| Some of the simulation examples are covered in the [Gromacs Tutorial Page](http://www.mdtutorials.com/gmx/).We will take the example of Lysozyme in water as a case study. | ||
|
|
||
| Download and extract the example `pdb` dataset using the following command, | ||
|
|
||
| ```bash | ||
| $DATA_SET=water_GMX50_bare | ||
| $wget -c https://ftp.gromacs.org/pub/benchmarks/${DATA_SET}.tar.gz | ||
| $tar xf ${DATA_SET}.tar.gz | ||
| ``` | ||
|
|
||
| To run the simulation using `gmx` executable, | ||
|
|
||
| ```bash | ||
| $cd ./water-cut1.0_GMX50_bare/1536 | ||
| $gmx grompp -f pme.mdp | ||
| $gmx mdrun -ntmpi 4 -nb gpu -pin on -nsteps 5000 -ntomp 10 -s topol.tpr | ||
| ``` | ||
|
|
||
| In the above run command, | ||
|
|
||
| - `gmx` is the executable to run the pipeline. | ||
| - `-ntmpi` Number of MPI processes. | ||
| - `-nb gpu`defines the computation to use GPUs. | ||
| - `-pin on` binds CPU to core. | ||
| - `-nsteps 5000` Number of steps to run the simulation. | ||
| -`-ntomp 10` Number of cores, which will be 10*4 MPI processes i.e, 40 cores | ||
| - `-s topol.tpr` is the input parameter. | ||
|
|
||
| #### Performance Analysis | ||
|
|
||
| ### Quantum Espresso | ||
|
|
||
| Quantum Espresso (QE) is an open-source suite of codes for electronic-structure calculations and materials modeling based on density functional theory (DFT), plane waves, and pseudopotentials. It is used to study the properties of materials at the atomic scale. | ||
|
|
||
| Quantum Expresso is available as a module in Cheaha and can be loaded as, | ||
|
|
||
| ```bash | ||
| $module load QuantumESPRESSO/6.3-foss-2018b | ||
| ``` | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.