In my abyss-pe command line, I use "np=10" since I am running abyss-mpi. At the mapping stag in which abyss-pe calls abyss-map, it work only on on thread!
Is there any way to make abyss-pe run abyss-map multi-threaded, i.e j10 for instance? I thought that abyss-pe will always make j=np, but this is not true. I am using abyss v1.9.
my wild guess is that abyss-pe is a wrapper to abyss-map, hence the abyss-pe executes 10 abyss-map commands in parallel. Can you check with top and see how many programs are being executed ? If you are using np=10, either you should see 10 abyss-map processes or 1 abyss-pe process with 1000% CPU usage. If you just see one process of abyss-map with 100% CPU usage, you need to install the mpirun (openMPI) program properly. If openMPI is not configured properly, some programs silently skips the parallel running and uses single core.
But if openMPI isn't installed properly, shouldn't I have had the same problem in the earlier stages in the assembly? All steps before abyss-map were parallelized on the 10 nodes and worked just fine!
What do you think about running abyss-pe np=10 j=10 ......? I tried it in a dry run and abyss-map commands has j10. still didn't test this in a real run.
ADD REPLY
• link
updated 5.0 years ago by
Ram
44k
•
written 9.0 years ago by
malabady
▴
30
0
Entering edit mode
np=10 should ideally use 10 cores. But in past I saw few programs that silently run on single CPU, without any errors or warnings if mpi is not installed properly. I am not sure about the previous steps, but can you verify that your openmpi is installed properly ?
Use j=10 in addition to np=10 in your abyss-pe command line.
j specifies the number of threads to use, for programs in the ABySS pipeline that are multithreaded (e.g. abyss-map). np specifies the number of MPI processes (a.k.a. "MPI ranks") to ABYSS-P, which is the first stage of the ABySS pipeline. ABYSS-P is the only program in the assembly pipeline that uses MPI and it is not multithreaded. The remainder of the pipeline runs on only a single machine.
Edit: fix typo and clarify that ABYSS-P is not multithreaded.
Edit 2: Correction: Use j=10in addition tonp=10. Mention that the later stages of the pipeline only run on a single cluster node.
ADD COMMENT
• link
updated 5.0 years ago by
Ram
44k
•
written 9.0 years ago by
benv
▴
730
0
Entering edit mode
I see. But if I use j=10 and not np=10, wouldn't this affect how ABYSS-P is run at early stages of the assembly? how about passing both flags, i.e. np=10j=10 to abyss-pe?
ADD REPLY
• link
updated 5.0 years ago by
Ram
44k
•
written 9.0 years ago by
malabady
▴
30
0
Entering edit mode
Yep, my mistake. In your case, you should use both np=10andj=10. (I've corrected my answer.) The j=10 will have no effect on ABYSS-P since it is not a multithreaded program.
ADD REPLY
• link
updated 5.0 years ago by
Ram
44k
•
written 9.0 years ago by
benv
▴
730
my wild guess is that
abyss-pe
is a wrapper toabyss-map
, hence theabyss-pe
executes 10abyss-map
commands in parallel. Can you check withtop
and see how many programs are being executed ? If you are usingnp=10
, either you should see 10 abyss-map processes or 1 abyss-pe process with 1000% CPU usage. If you just see one process of abyss-map with 100% CPU usage, you need to install the mpirun (openMPI) program properly. If openMPI is not configured properly, some programs silently skips the parallel running and uses single core.It is on abyss-map with 100% CPU usage!
But if openMPI isn't installed properly, shouldn't I have had the same problem in the earlier stages in the assembly? All steps before abyss-map were parallelized on the 10 nodes and worked just fine!
What do you think about running
abyss-pe np=10 j=10 ......
? I tried it in a dry run and abyss-map commands has j10. still didn't test this in a real run.np=10 should ideally use 10 cores. But in past I saw few programs that silently run on single CPU, without any errors or warnings if mpi is not installed properly. I am not sure about the previous steps, but can you verify that your openmpi is installed properly ?