Difference between revisions of "GPUs EMBO 2018"

From Dynamo
Jump to navigation Jump to search
Line 4: Line 4:
 
= Creation of the project =
 
= Creation of the project =
 
* Create a tutorial project <br />
 
* Create a tutorial project <br />
<tt>dtutorial t -p ptest -M 100 </tt>  <br />
+
<tt>dtutorial t -p MYPROJECT -M 100 </tt>  <br />
 
This project contains 100 synthetic thermosomes.
 
This project contains 100 synthetic thermosomes.
  
* Adapt the project to be ran on a GPU environment without matlab <br />
+
* Adapt the project to be ran on a GPU environment <br />
<tt>dvput ptest destination standalone_gpu</tt>
+
<tt>dvput MYPROJECT destination matlab_gpu</tt>
  
* Passes a group of GPU identifiers <br />
+
* Passes a group of GPU identifiers.  Assuming that we just want to use 2 GPUs: <br />
<tt>dvput ptest gpu_identifier_set  0:3</tt>
+
<tt>dvput ptest gpu_identifier_set  0:1</tt>
  
 
* Unfolds the project:
 
* Unfolds the project:
Line 36: Line 36:
 
#SBATCH --mem=120GB
 
#SBATCH --mem=120GB
 
#SBATCH --time=0-03:00:00
 
#SBATCH --time=0-03:00:00
 +
 +
module load CUDA/7.5.18-GCC-6.4.0-2.28
 
module load dynamo
 
module load dynamo
command
+
 
 +
echo "dvput MYPROJECT -gpu_identifier_set $CUDA_VISIBLE_DEVICES" > dcommands.sh
 +
echo "dvunfold MYPROJECT" >> dcommands.sh
 +
dynamo dcommands.sh
 +
chmod u=rxw ./MYPROJECT.m
 +
./myProject.m
 +
 
 
</pre>
 
</pre>
  

Revision as of 14:42, 24 August 2018

We exemplify the process of sending projects to the GPU by the creation and running of a synthetic project.

Creation of the project

  • Create a tutorial project

dtutorial t -p MYPROJECT -M 100
This project contains 100 synthetic thermosomes.

  • Adapt the project to be ran on a GPU environment

dvput MYPROJECT destination matlab_gpu

  • Passes a group of GPU identifiers. Assuming that we just want to use 2 GPUs:

dvput ptest gpu_identifier_set 0:1

  • Unfolds the project:

dvunfold ptest

It creates a script called ptest.sh that needs to be submitted to the a GPU.

Submission of the project

Submission script model

there is a sample script located in

 path this and that 
#!/bin/bash
#SBATCH -p gpu
#SBATCH -N 1 #stay on a single node. remove for CPU jobs
#SBATCH -J jobname   XXXX CHANGE THIS
#SBATCH --ntasks=7        
#SBATCH -o run.out          # STDOUT
#SBATCH -e run.err          # STDERR
#SBATCH --gres=gpu:2  XXXX CHANGE THIS	
#SBATCH --mail-type=END,FAIL
#SBATCH --mem=120GB		
#SBATCH --time=0-03:00:00

module load CUDA/7.5.18-GCC-6.4.0-2.28
module load dynamo

echo "dvput MYPROJECT -gpu_identifier_set $CUDA_VISIBLE_DEVICES" > dcommands.sh
echo "dvunfold MYPROJECT" >> dcommands.sh
dynamo dcommands.sh
chmod u=rxw ./MYPROJECT.m
./myProject.m

Adapt the script to the project

You can copy the script to your local folder (where you have created the project) and edit it to match the requirements of the project. Basically, you need to change the number of GPUs, the name of the project. Rename it to something you can identify later, like ptest.script

Submit the script

srun ptest.script