Question

I am doing MPI programming on a cluster with 8 nodes and each having a Intel Xeon hexcore processor. I need three processors for my mpi code.

I submit the job using qsub. When I check on which processors the job is running using "qstat -n" it says something like cn004/0*3 .

So does this mean it is running it on only one processor ??

Because it is not speeding up than when I use a single processor(This is when the domain size is the same for both cases)

The script i use for submitting is as follows

#! /bin/bash
#PBS -o logfile.log
#PBS -e errorfile.err
#PBS -l cput=40:00:00
#PBS -lselect=1:ncpus=3:ngpus=3
#PBS -lplace=excl
cat $PBS_NODEFILE
cd $PBS_O_WORKDIR
mpicc -g -W -c -I /usr/local/cuda/include mpi1.c
mpicc -g -W mpi1.o -L /usr/local/cuda/lib64 -lOpenCL
mpirun -np 3 ./a.out
Was it helpful?

Solution

"qstat -n" it says something like cn004/0*3.

Q: So does this mean it is running it on only one processor ??

The short answer is "no". This does not mean that it runs on one processor. "cn004/0*3" should be interpreted as "The job is allocated three cpu cores. And if we were to number the cores from 0 to 5 then the cores allocated would have numbers 0,1,and 2".

If another job were to run on the node it would receive the next three consecutive numbers "3,4, and 5". In the qstat -n output this would look like "cn004/3*3".

You use the directive place=excl to ensure that other jobs would not get the node, so essentially all the six cores are available.

Now for your second question:

Q: it is not speeding up than when I use a single processor

In order to answer this question we need to know if the algorithm is parallelized correctly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top