Skip to content

Conversation

galapaegos
Copy link
Contributor

Provided documentation for MPI and for setting the group/grain size for GPU-only versions.

@galapaegos galapaegos requested a review from henryiii March 19, 2017 20:11
Copy link
Member

@henryiii henryiii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving, but a wording question. Does MPI only work with cuda? (GPU devices are selected automatically could be confusing) I'll test this after the merge and we can make any final fixes then.

@henryiii henryiii merged commit 802475e into GooFit:mpi Mar 20, 2017
@galapaegos
Copy link
Contributor Author

MPI works with OMP and CUDA. This is a comment specific to GPUs about assigning a process to a GPU in a multi-GPU environment. Here is an example:

I have a two computers with 4 GPU's. I want to use both nodes with two GPU's, so I will run mpirun -np 2 ./program args from one machine. Now the question is which two GPU's will be used. Currently, it will round-robin the GPUs (MPI rank 0 gets GPU 0, MPI rank 1 gets GPU 1). I can change this to parse the '--gpu-dev' parameter as an alternative to the round-robin scheme. The current block of code performing the round robin will need to be moved after the parse call, maybe Application::pre_callback. What we don't want is each process getting GPU 0. The '--gpu-dev' flag will need to support multiple values as well, which I think it does?

@henryiii
Copy link
Member

It is easy to change it to support multiple values, possibly even compile time conditionally. Just give it a vector<int> instead of an int.

@henryiii henryiii modified the milestone: V 2.0 Jun 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants