[GenABEL-dev] Building OmicABELnoMM without MPI

Frank, Alvaro Jesus alvaro.frank at rwth-aachen.de
Fri Oct 24 11:04:14 CEST 2014


2) Write a bit of code using #ifdefs to disable parts that need MPI if
the libs are not installed (or when the user explicitly runs ./configure
--disable-mpi, for exmaple).

This one would be the best in terms of usage for non heavy users and it wont be much problem for me to change. I will add the pragmas and allow for it to be disabled. 

But if we want to be consistent with autoconf, I guess when someone DOES want to use mpi, there has to be a way for ./configure to detect it. The problem is also a way to determine both compilers inside of the makefile, there are two different compilations:

g++ ....
and mpicc/mpicxx/mpic++
on top of that there is your mentioned MPICH and OpenMPI variations.

The user will have at some point to install the libraries and binaries. 
It is also worth noting that Boost is also required, and my system I have to specified manually. How are you handling that yourself?

openblas also requires openmp which is why I ask the user to compile it himself with proper settings, which are not present on pckg distributed by debian or ubuntu. 

I am concerned about users who have NOTHING installed, not even latest gcc's.

-Alvaro

________________________________________
From: genabel-devel-bounces at lists.r-forge.r-project.org [genabel-devel-bounces at lists.r-forge.r-project.org] on behalf of L.C. Karssen [l.c.karssen at polyomica.com]
Sent: Friday, October 24, 2014 10:55 AM
To: GenABEL Development list
Subject: [GenABEL-dev] Building OmicABELnoMM without MPI

Hi Alvaro,

Here's a follow-up to my previous question about OpenMPI vs MICH:

It turns out that if I don't have any MPI library installed, ./configure
prints the following output:

  checking for mpic++... no
  checking for mpicxx... no

but it continues. However, make subsequently fails:

 src/Definitions.h:31:17: fatal error: mpi.h: No such file or directory
  #include <mpi.h>


I think there are two solutions:

1) Make MPI libraries a requirement for OAnMM: so ./configure should
abort with an error if AC_PROG_CXX([mpic++ mpicxx]) fails.

2) Write a bit of code using #ifdefs to disable parts that need MPI if
the libs are not installed (or when the user explicitly runs ./configure
--disable-mpi, for exmaple).


I'd say the first one is rather drastic, the second one being nicer to
the user. However, I didn't look into the code base to see whether it is
possible to selectively disable MPI use.

What do you think?


Best,

Lennart.


--
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Lennart C. Karssen
PolyOmica
Groningen
The Netherlands

l.c.karssen at polyomica.com
GPG key ID: 1A15AF2A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



More information about the genabel-devel mailing list