Hi,
This is what i have tried so far...
I installed a software(e-cell, bioinformatics related) that uses gcc as the default compiler, on 15 node linux cluster. I want to change the compiler from gcc to mpiCC, to parallelize the software. The software has C++ core, and python bindings as front end. For this first i tried changing the python script which calls gcc to compile. But this gave out different kind of errors. So i went ahead forcing to use mpiCC compiler when configuring, rather than the default gcc. Different variations of commands i've used so far are,
$./configure CC=mpicc CXX=mpiCC
$./configure --with-CC=mpicc --with-CXX=mpiCC
for all these alternatives, configure does not give out any error, but when it comes to make, it fails.
$make CC=mpicc CXX=mpiCC
$make
For this i get errors like....
mpiCC -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../.. -I/usr/include -I/workx5/ecell3 -I../../libltdl -g -Wno-pmf-conversions -g -Wno-pmf-conversions -c libecs.cpp -DPIC -o .libs/libecs.o
pgCC-Warning-Unknown switch: -Wno-pmf-conversions
pgCC-Warning-Unknown switch: -Wno-pmf-conversions
"Defs.hpp", line 427: error: identifier "INFINITY" is undefined
const Real INF( INFINITY );
^
"Defs.hpp", line 444: warning: type qualifier on return type is meaningless
inline const Real FMA( const Real a, const Real b, const Real c )
^
"libecs.hpp", line 55: warning: type qualifier on return type is meaningless
inline const int getMajorVersion()
^
"libecs.hpp", line 60: warning: type qualifier on return type is meaningless
inline const int getMinorVersion()
^
"libecs.hpp", line 65: warning: type qualifier on return type is meaningless
inline const int getMicroVersion()
^
1 error detected in the compilation of "libecs.cpp".
make[5]: *** [libecs.lo] Error 1
make[5]: Leaving directory `/workx5/ecell3/ecell/libecs'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/workx5/ecell3/ecell/libecs'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/workx5/ecell3/ecell'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/workx5/ecell3/ecell'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/workx5/ecell3'
make: *** [all] Error 2
[root_at_master ecell3]#
The software is working fine with gcc, and as mpiCC is just a wrapper of gcc, it should not be a big problem to change the compiler. This is what i've done so far...and for the problem with pgCC part....
pgCC-Warning-Unknown switch: -Wno-pmf-conversions
Wno-pmf-conversions is realted to C++, and the description in man page is,
"Disable the diagnostic for converting a bound pointer to member function to a plain pointer"
is there is an mpi alternative for this? is there any other way of solving this problem?
Thanks,
Nithila.
---------------------------------
Discover Yahoo!
Find restaurants, movies, travel & more fun for the weekend. Check it out!
|