Attached to this message is a short patch that deals with mpich's mpicc
scripts to allow distcc to deal with mpicc. Apply it in the bin
directory of mpich : example /usr/local/mpich-gm-gnu/bin/
eric
Eric Bechet wrote:
Hello,
I tried to use distcc to perform a distributed build of a parallelized
c++ code (via mpiCC). However, every object file generated with the
distributed compilation is of length 0 (no errors are generated by
distcc). The code compiles fine with distcc and g++ . In addition, it
also compiles fine with mpiCC directly invoked as a "serial" compiler.
The problem seem to be interactions between mpiCC and distcc.
Did someone actually manage to use mpiCC with distcc ? Here are some
relevant data :
1- using distcc-2.18.3, compiled from scratch
2- CENTOS (same as RHEL4) - kernel 2.6.9-5.0.5.ELsmp - x86_64
architecture. gcc version is 3.4.3 20041212 (Red Hat 3.4.3-9.EL4),
and mpiCC coming from mpichgm-1.2.6..14a
3- as stated, i'm trying to build a home made library which otherwise
works well (distcc with g++ works fine for that library)
4-with distcc and mpiCC, compiling a c++ source file leads to a zero
length .o file, with no error report. I think the problem lies either
in the transmission of the resulting object code (is mpiCC building
"special" object files ?) or in mpiCC failing to compile without
warning.
5- command line for one of the source files :
/usr/local/distcc/bin/distcc /usr/local/mpich-gm-gnu/bin/mpiCC -w
-fPIC -g -m64 -Wall -DDEBUG -DPARALLEL -D_HAVE_PARMETIS_
-DMPICH_SKIP_MPICXX -D_MPIPP_H -D_HAVE_PARMETIS_
-I/usr/local/parmetis-gm-gnu/METISLib
-I/usr/local/mpich-gm-gnu/include -I/usr/local/mpich-gm-gnu/include
-I/usr/local/autopack-gm-gnu -I/usr/local/parmetis-gm-gnu/METISLib
-I/usr/local/parmetis-gm-gnu -I/home/admin/develop/Solver/itl
-I/home/admin/develop/Solver/mtl
-I/home/admin/develop/Trellis/AOMD/include
-I/home/admin/develop/Trellis/model/include
-I/home/admin/develop/Trellis/Util/include
-I/home/admin/develop/Util/Loki/include
-I/home/admin/develop/Xext/XextPara/include
-I/home/admin/develop/Xfem/Xfem/Xfem/../include -c
Xfem/IntegratorPartitionBoundary.cc -o
obj/x86_64_linux-mpich/IntegratorPartitionBoundary.o
I attached a log file
Thanks for your help,
Eric
--
Eric Bechet
Research Associate
Institut GeM, Ecole Centrale de Nantes
1, rue de la Noe, 44321 Nantes Cedex 3, France
(tel/fax) +33 2 40 37 (25 82 / 25 73)
diff -u /root/mpicc ./mpicc
--- /root/mpicc 2005-05-17 14:53:09.000000000 +0200
+++ ./mpicc 2005-06-10 11:47:31.871506760 +0200
@@ -285,7 +285,7 @@
*) allargs="$allargs $arg"
if [ -s "$arg" ] ; then
ext=`expr "$arg" : '.*\(\..*\)'`
- if [ "$ext" = ".c" ] ; then
+ if [ "$ext" = ".c" -o "$ext" = ".i" ] ; then
DoCompile=1
compileargs="$compileargs $arg"
fname=`basename $arg .c`
diff -u /root/mpiCC ./mpiCC
--- /root/mpiCC 2005-06-10 12:04:10.865636568 +0200
+++ ./mpiCC 2005-06-10 11:47:31.871506760 +0200
@@ -297,7 +297,8 @@
if [ -s "$arg" ] ; then
ext=`expr "$arg" : '.*\(\..*\)'`
if [ "$ext" = ".C" -o "$ext" = ".cxx" -o "$ext" = ".cpp" -o \
- "$ext" = ".cc" -o "$ext" = ".c" -o "$ext" = ".CC" ] ; then
+ "$ext" = ".cc" -o "$ext" = ".c" -o "$ext" = ".CC" -o \
+ "$ext" = ".ii" -o "$ext" = ".i" ] ; then
DoCompile=1
compileargs="$compileargs $arg"
fname=`basename $arg $ext`
diff -u /root/mpicxx ./mpicxx
--- /root/mpicxx 2005-05-17 14:53:09.000000000 +0200
+++ ./mpicxx 2005-06-10 11:47:31.871506760 +0200
@@ -297,7 +297,8 @@
if [ -s "$arg" ] ; then
ext=`expr "$arg" : '.*\(\..*\)'`
if [ "$ext" = ".C" -o "$ext" = ".cxx" -o "$ext" = ".cpp" -o \
- "$ext" = ".cc" -o "$ext" = ".c" -o "$ext" = ".CC" ] ; then
+ "$ext" = ".cc" -o "$ext" = ".c" -o "$ext" = ".CC" -o \
+ "$ext" = ".ii" -o "$ext" = ".i" ] ; then
DoCompile=1
compileargs="$compileargs $arg"
fname=`basename $arg $ext`
__
distcc mailing list http://distcc.samba.org/
To unsubscribe or change options:
https://lists.samba.org/mailman/listinfo/distcc