I'm trying to set up a cluster for a group of users with very
different needs. So far, it looks like I need gcc, pgi, and intel to
work with openmpi and mpich, with each user able to control what
combination they get. This is turning out to be much more difficult
than I expected.
Someone has pointed me to enviornment-modules ("Modules"), which looks
like it will be a critical part of the solution. I even noticed that
the provided openmpi.spec file has some direct support for modules,
which makes me quite happy!
However, I still have many questions about how to set things up.
First, I get the impression that openmpi will need to be compiled with
each compiler that will use it. If this is true, I'm not quite sure
how to go about it. I could install in different directories for the
user commands, but what about the libraries? I don't think I have a
feesable way of selecting which library to use on the fly on the
entire cluster for each user, so it seems like it would be better to
have all the libraries available. In addition, I will need RPMs to
deploy efficiently on the cluster. I suspect I can change the
versioning info and build with each compiler, but at this point, I
don't even know how to reliably select what compiler rpmbuild will use
(I've only succeeded in using gcc).
Finally, using modules, how do I set it up so that if a user changes
compilers, but stays with openmpi, it will load the correct openmpi
paths? I know I can set up the openmpi module file to load after the
compiler module and based on that select different paths based on the
currently-loaded compiler module. If the user changes the compiler
module, will that cause the mpi module to also be reloaded so the new
settings will be loaded? Or do I need this at all?
Thanks for all your help!