Rescaling scheme for GPU using (BEAGLE) or how to use BEAGLE GPU correctly?

273 views
Skip to first unread message

Artem B

unread,
Jan 12, 2020, 7:32:52 AM1/12/20
to beast-users
Hi there!

When I try to run BEAST 1.8.4 with BEAGLE GPU, it works with a dynamic scheme only (according to log). With other schemes, BEAGLE is run with CPU despite I set GPU.
How to use BEAGLE GPU correctly?

Regards,
Artem B

Andrew Rambaut

unread,
Jan 12, 2020, 8:46:57 AM1/12/20
to beast...@googlegroups.com
There was a bug in 1.8.4 with how it dealt with the command line switches to get GPU.

If I remember correctly using -beagle_order to specify the GPU and -beagle_double may work.

The other solution is to upgrade to 1.10.4

Andrew

--
You received this message because you are subscribed to the Google Groups "beast-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beast-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beast-users/26c14982-b09a-4214-a206-75ef569c4361%40googlegroups.com.


Artem B

unread,
Jan 12, 2020, 8:58:37 AM1/12/20
to beast-users
Thank you, Andrew. I hope to switch Beast versions next week (finally) if it's stable now.

Wayne Pfeiffer

unread,
Jan 12, 2020, 9:32:03 AM1/12/20
to beast-users
Hi Artem,

Note that BEAST 1.10.4 can only use one GPU per partition. If you want to analyze a large, single-partition data set with multiple GPUs, you should stick with BEAST 1.8.4. To use four GPUs, for example, you would specify -beagle_GPU -beagle_cuda -beagle_order 1,2,3,4  -threads 4 -beagle_instances 4.

Best regards,  Wayne

Andrew Rambaut

unread,
Jan 12, 2020, 10:59:02 AM1/12/20
to beast...@googlegroups.com
Hi Wayne and Artem,

This is true but the -beagle_instances in 1.8.4 was more intended for splitting a partition between multiple cores on a CPU. Sure if you had 2 GPUs you could do it for that but if you can fit the entire partition in a single GPU that would be more efficient (it is more a way round memory limitations on GPUs). 

In BEAGLE 3, the CPU kernel now does multithreading so it can parallelize a single partition across multiple CPU cores, eliminating the need for -beagle_instances. Also with BEAST 1.10.4, multiple partitions can be combined into a single BEAGLE instance and run on a single GPU which may help achieve full occupation of the GPU and better efficiency.

So if you have multiple GPUs and a partition large enough to saturate one GPU, then the -beagle_instances option may be of benefit. We are working to reinstate this option for these cases but for now you would be stuck with 1.8.4.

Hope this helps,
Andrew

--
You received this message because you are subscribed to the Google Groups "beast-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beast-users...@googlegroups.com.

Artem B

unread,
Jan 13, 2020, 2:55:07 AM1/13/20
to beast-users
Hello Andrew and Wayne!

Thank you a lot! I didn't know about that at all. It's really helpful.

Best regards,
Artem B.

Kary Ocaña

unread,
Apr 8, 2020, 2:35:41 PM4/8/20
to beast-users
Dear All, 

Dear all, 

I am using beast 1.10.4 using beagle library v3.1.2. 

We did independent tests using a data set with 10 partition, using 1 node using CPU (24 threads), or 1GPU, 2GPU, 8 GPU, and all GPUs/CPUs
We observed that multi GPUs are not set or used, and only use 1 GPU. Apparently, when we set the option GPUs/CPUs, is the only case where multi GPUs are calling.
Please, any ideas about how we can set multiple GPUs? 

These are some examples of the command lines. (We try to vary the flags in the command lines, these are some examples)

OrderAllCPUallGPU

=================

EXEC="java -Xms64m -Xmx24G -jar /scratch/app/beast/1.10/lib/beast.jar -overwrite -beagle -beagle_SSE -beagle_CPU -threads $SLURM_

CPUS_PER_TASK -beagle_instances 4 -beagle_GPU -beagle_cuda -beagle_order 0,1,2,0,1,2,0,1,2,0 Dengue997_s3_AMVN_MPDLD.xml


sub_gpu_24tnothreadsOrderOnly1GPU.sh

====================================

EXEC="java -Xms64m -Xmx24G -jar /scratch/app/beast/1.10/lib/beast.jar -overwrite -beagle -beagle_GPU -beagle_order 1 -beagle_SSE 

-beagle_cuda Dengue997_s3_AMVN_MPDLD.xml"


sub_gpu_24tnothreadsOrderOnlyGPU.sh

===================================

EXEC="java -Xms64m -Xmx24G -jar /scratch/app/beast/1.10/lib/beast.jar -overwrite -beagle -beagle_GPU -beagle_order 1,2,1,2,1,2,1,

2,1,2 -beagle_SSE -beagle_cuda Dengue997_s3_AMVN_MPDLD.xml"


Best regards

Kary Ocaña

Wayne Pfeiffer

unread,
Apr 8, 2020, 2:59:40 PM4/8/20
to beast-users
Hi Kary,

Earlier in this thread it is noted that BEAST 1.10.4 cannot use more than one GPU because -beagle_instances is not enabled. If you want to use multiple GPUs, you should revert to BEAST 1.8.4.

Best regards,  Wayne

Kary Ocaña

unread,
Apr 8, 2020, 3:41:52 PM4/8/20
to beast-users, Micaella Coelho, Guilherme Freire, WSCAD 2018
Dear Wayne 
I appreciate so much for the rapid response 
Best regards

Kary 
--
You received this message because you are subscribed to the Google Groups "beast-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beast-users...@googlegroups.com.

Kary Ocaña

unread,
Apr 8, 2020, 11:19:28 PM4/8/20
to beast-users, Micaella Coelho, Guilherme Freire, WSCAD 2018
Dear 
I will run beast 1.8.4, for hpc testing 
Now, the version 1.10.4 is actually used in my lab. 
Do you know if there is any difference between the quality of output data generated by these two version? This way I could use any of them in what situations.?

Best regards 
Kary
Reply all
Reply to author
Forward
0 new messages