On 07/08/15 16:53, Kenneth Hoste wrote:

> Hi Chris,

Hiya Kenneth,

> You'd need to include this, rather than what you mentioned (that would
> only work in easyconfig files):
> 
>     self.cfg.update('configopts', '--with-arch=native')

Odd, I just copied how the existing code in the gcc.py file did things
and it worked as expected (it now builds with that option):

[samuel@qan02 ~]$ gcc -v
[...]
Configured with: ../configure [...] --with-arch=native [...]

> However, this change will be lost as soon as you reinstall/update
> EasyBuild, so you'd need to remember to reapply this patch.

Agreed, but it's easier to do that than to patch/merge all the
easyconfigs each time.

> For now, it may suffice as a temporary solution, but we need a better
> solution in place for sure to support these kind of site customizations.

What did you think of my idea of a config file in the appropriate
easyconfig directory?

Be nice if it could be found via robot_path in an otherwise empty tree
so it could be held separately under git.

>> We've already set __INTEL_PRE_CFLAGS and __INTEL_PRE_FFLAGS so
>> that's the Intel compilers covered.
> 
> Hah, I didn't know about these, interesting.

Yeah, that was my discovery this week (before now we relied on setting
OMPI_CFLAGS etc to pass those in but that doesn't help people building
non-MPI code).

> There's no easyblock for OpenMPI, since OpenMPI is installed using the
> generic ConfigureMake easyblock, so you can't just go and patch
> openmpi.py like you did for gcc.py.

Yup, I've just found that out. :-)

> If you really want to fix it in one place, you could modify your
> configuremake.py with something like:
> 
> if self.name == 'OpenMPI':
>     self.cfg.update('configopts', '--with-slurm')
> 
> I don't recommend this though; same argument as for gcc.py, it's an ugly
> hack that is bound to bite you in the ass at some point.

If there was some way to map all versions of MPI to a single blessed
OpenMPI version per compiler (GCC/Intel) then I would be very happy to
just have our own Easyconfig file for that version that was found via
robot_path instead.

> For now, if you need to enhance easyconfigs with site customizations,
> you should copy and edit the easyconfig files, and put them in a directory.

That's what I started off trying to do.  But with 29 of them it becomes
painful when you upgrade and have to redo them all again.

[...]
> That does mean you need to be careful that new easyconfigs that are
> added when you update your EasyBuild installation also get a customized
> version.

Yeah, I copied the newly arrived versions over and updated them.

> I know it's not a satisfactory solution for simple modifications that
> are version-agnostic, but it's the best we have in place for now.

Understood, and please don't take my blundering around with this as
feeling bad about it, I think it's a great idea, just trying to work out
how to make it do what we need. :-)

All the best,
Chris (about to knock off for the weekend)
-- 
 Christopher Samuel        Senior Systems Administrator
 VLSCI - Victorian Life Sciences Computation Initiative
 Email: [email protected] Phone: +61 (0)3 903 55545
 http://www.vlsci.org.au/      http://twitter.com/vlsci

Reply via email to