Tuesday, 5 June 2007

Run EGSnrc in Parallel (1)

EGSnrc and BEAMnrc could be run in parallel as described in their documentations. One of the options is using NQS, Network Queuing System.

Here is the brief guide about how to install and configure Generic NQS.

First of all download the package.

Follow the instructions to install NQS locally. It is installed as standalone version.

Use nmapmgr to add host node,

> add host node

> add alias name node

> list

> exit

Use root to start NQS, qmgr start nqs

Create batch queues:

> qmgr create batch_queue short
> qmgr create batch_queue medium
> qmgr create batch_queue long

Specify CPU time:

> qmgr set per_process cpu_limit = \( 2:0:0 \) short
> qmgr set per_process cpu_limit = \( 8:0:0 \) medium
> qmgr set per_process cpu_limit = \( 24:0:0 \) long

Set up priority and runlimits:

> qmgr set priority = 40 short
> qmgr set priority = 30 medium
> qmgr set priority = 20 long

> qmgr set run_limit = 5 short
> qmgr set run_limit = 4 medium
> qmgr set run_limit = 2 long

Set up user limit:

> qmgr set user_limit = 2 short
> qmgr set user_limit = 1 medium
> qmgr set user_limit = 1 long

So far the configuration is done. Queues need to be enabled and started.

qmgr enable queue

qmgr start queue

Now we can submit tasks to the system.

qsub -eo -r what -q short something.sh

The tasks will start to run on the processor(s) if there is any available.

If you are running at a dual-processor or dual-core system, you could see the change of the performance.

1 comment:

Unknown said...

Dear Dr .X

I hope you are fine
how we can integrate fortran subrotine to Mortran in EGSnrc