[MPICH2-dev] MPICH2 1.0.5-rc1 Intel 32-bit compilers

Larry Baker baker at usgs.gov
Wed Nov 29 16:14:37 CST 2006


Bill,

I downloaded MPICH2 1.0.5 RC1 and compiled the library on our Pentium  
4 32-bit cluster with the Intel IA-32 compilers.  I'll also send you  
my results for our Opteron 64-bit cluster with the PGI compilers.   
Here's my results so far.

4-node Pentium 4 Cluster, Rocks 4.1 (based on CentOS 4.2, I think)  
Linux-x86, Intel Linux 9.1.044 C/C++ and 9.1.039 Fortran compilers.

# source /opt/intel/cc/9.1.044/bin/iccvars.sh
# source /opt/intel/fc/9.1.039/bin/ifortvars.sh
# export CC=icc
# export CXX=icpc
# export FC=ifort
# export F77=ifort
# export F90=ifort
# export CFLAGS="-O -tpp7 -xW"
# export FFLAGS="-O -tpp7 -xW -w90 -w95"
# export F90FLAGS="-O -tpp7 -xW -w95"
# ./configure --with-device=ch3:sock --with-pm=mpd --enable- 
g=dbg ‑‑enable-f77 --enable-f90 --enable-cxx --enable- 
romio ‑‑with‑file‑system=ufs+nfs --enable-debuginfo --enable- 
mpe ‑‑enable‑sharedlibs=gcc --prefix=/opt/mpich2/1.0.5-rc1/intel/ 
9.1.044 >configure.log 2>&1

make gave the following warnings (numbers are keyed to fixups below):

1.  socki_util.i(684): warning #188: enumerated type mixed with  
another type
1.  socki_util.i(685): warning #188: enumerated type mixed with  
another type
1.  socki_util.i(805): warning #188: enumerated type mixed with  
another type
1.  socki_util.i(806): warning #188: enumerated type mixed with  
another type
2.  sock_init.i(67): warning #177: label "fn_exit" was declared but  
never referenced
3.  sock_set.i(246): warning #177: label "fn_exit" was declared but  
never referenced
4.  sock_misc.i(232): warning #177: label "fn_exit" was declared but  
never referenced
1.  socki_util.i(684): warning #188: enumerated type mixed with  
another type
1.  socki_util.i(685): warning #188: enumerated type mixed with  
another type
1.  socki_util.i(805): warning #188: enumerated type mixed with  
another type
1.  socki_util.i(806): warning #188: enumerated type mixed with  
another type
2.  sock_init.i(67): warning #177: label "fn_exit" was declared but  
never referenced
3.  sock_set.i(246): warning #177: label "fn_exit" was declared but  
never referenced
4.  sock_misc.i(232): warning #177: label "fn_exit" was declared but  
never referenced
5.  ch3u_handle_recv_req.c(46): warning #177: label "fn_fail" was  
declared but never referenced
6.  ch3u_handle_send_req.c(71): warning #177: label "fn_exit" was  
declared but never referenced
7.  ch3u_port.c(552): warning #266: function declared implicitly
8.  ch3u_eager.c(36): warning #188: enumerated type mixed with  
another type
8.  ch3u_eager.c(123): warning #188: enumerated type mixed with  
another type
8.  ch3u_eager.c(186): warning #188: enumerated type mixed with  
another type
8.  ch3u_eager.c(257): warning #188: enumerated type mixed with  
another type
9.  mpidi_pg.c(84): warning #266: function declared implicitly
9.  mpidi_pg.c(582): warning #266: function declared implicitly
5.  ch3u_handle_recv_req.c(46): warning #177: label "fn_fail" was  
declared but never referenced
6.  ch3u_handle_send_req.c(71): warning #177: label "fn_exit" was  
declared but never referenced
7.  ch3u_port.c(552): warning #266: function declared implicitly
8.  ch3u_eager.c(36): warning #188: enumerated type mixed with  
another type
8.  ch3u_eager.c(123): warning #188: enumerated type mixed with  
another type
8.  ch3u_eager.c(186): warning #188: enumerated type mixed with  
another type
8.  ch3u_eager.c(257): warning #188: enumerated type mixed with  
another type
9.  mpidi_pg.c(84): warning #266: function declared implicitly
9.  mpidi_pg.c(582): warning #266: function declared implicitly
10. ad_testfs_done.c(47): warning #592: variable "myrank" is used  
before its value is set
10. ad_testfs_done.c(47): warning #592: variable "nprocs" is used  
before its value is set
10. ad_testfs_done.c(47): warning #592: variable "myrank" is used  
before its value is set
10. ad_testfs_done.c(47): warning #592: variable "nprocs" is used  
before its value is set
11. dbg_printf.c(95): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(116): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(120): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(124): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(144): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(95): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(116): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(120): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(124): warning #188: enumerated type mixed with  
another type
11. dbg_printf.c(144): warning #188: enumerated type mixed with  
another type
12. simple_pmiutil.c(125): warning #266: function declared implicitly
12. simple_pmiutil.c(125): warning #266: function declared implicitly

1.  Warnings for src/mpid/common/sock/poll/socki_util.i:

socki_util.i(684): warning #188: enumerated type mixed with another type
             pollinfos[elem].type = 0;
                                  ^

socki_util.i(685): warning #188: enumerated type mixed with another type
             pollinfos[elem].state = 0;
                                   ^

socki_util.i(805): warning #188: enumerated type mixed with another type
       pollinfo->type = 0;
                      ^

socki_util.i(806): warning #188: enumerated type mixed with another type
       pollinfo->state = 0;
                       ^
Fixup: edit the line numbers shown below in src/mpid/common/sock/poll/ 
socki_util.i to use the names of enumeration constants instead of 0  
when initializing pollinfo type and state fields:

684:            pollinfos[elem].type = MPIDU_SOCKI_TYPE_FIRST;
685:            pollinfos[elem].state = MPIDU_SOCKI_STATE_FIRST;

702:    MPIU_Assert(sock_set->pollinfos[avail_elem].type ==  
MPIDU_SOCKI_TYPE_FIRST);
703:    MPIU_Assert(sock_set->pollinfos[avail_elem].state ==  
MPIDU_SOCKI_STATE_FIRST);

805:        pollinfo->type = MPIDU_SOCKI_TYPE_FIRST;
806:        pollinfo->state = MPIDU_SOCKI_STATE_FIRST;

2.  Warnings for src/mpid/common/sock/poll/sock_init.i:

sock_init.i(67): warning #177: label "fn_exit" was declared but never  
referenced
     fn_exit:
     ^

The label fn_exit: is referenced when #ifdef USE_SOCK_VERIFY; ignore  
this warning.

3.  Warnings for src/mpid/common/sock/poll/sock_set.i:

sock_set.i(246): warning #177: label "fn_exit" was declared but never  
referenced
     fn_exit:
     ^

The label fn_exit: is referenced when #ifdef USE_SOCK_VERIFY; ignore  
this warning.

4.  Warnings for src/mpid/common/sock/poll/sock_misc.i:

sock_misc.i(232): warning #177: label "fn_exit" was declared but  
never referenced
     fn_exit:
     ^

The label fn_exit: is referenced when #ifdef USE_SOCK_VERIFY; ignore  
this warning.

5.  Warnings for src/mpid/ch3/src/ch3u_handle_recv_req.c:

ch3u_handle_recv_req.c(46): warning #177: label "fn_fail" was  
declared but never referenced
    fn_fail:
    ^

Fixup: delete the line numbers below to remove the unnecessary code.   
Change:

42:  fn_exit:
43:    in_routine = FALSE;
44:    MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3U_HANDLE_RECV_REQ);
45:    return mpi_errno;
46: fn_fail:
47:    goto fn_exit;

to:

42:    in_routine = FALSE;
43:    MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3U_HANDLE_RECV_REQ);
44:    return mpi_errno;

6.  Warnings for src/mpid/ch3/src/ch3u_handle_send_req.c:

ch3u_handle_send_req.c(71): warning #177: label "fn_exit" was  
declared but never referenced
     fn_exit:
     ^

Fixup: delete the line numbers below to remove the unnecessary code:

71:  fn_exit:


7.  Warnings for src/mpid/ch3/src/ch3u_port.c:

ch3u_port.c(552): warning #266: function declared implicitly
       MPIDI_PG_CheckForSingleton();
       ^

MPIDI_PG_CheckForSingleton() is implemented in src/mpid/ch3/src/ 
mpidi_pg.c, but there is no function prototype declaration for it in  
any header files.

Fixup: add a function prototype declaration for  
MPIDI_PG_CheckForSingleton() to src/mpid/ch3/include/mpidimpl.h (see  
fixup 9).

8.  Warnings for src/mpid/ch3/src/ch3u_eager.c:

ch3u_eager.c(36): warning #188: enumerated type mixed with another type
       MPIDI_Pkt_init(eager_pkt, reqtype);
       ^

ch3u_eager.c(123): warning #188: enumerated type mixed with another type
       MPIDI_Pkt_init(eager_pkt, reqtype);
       ^

ch3u_eager.c(186): warning #188: enumerated type mixed with another type
       MPIDI_Pkt_init(eagershort_pkt, reqtype);
       ^

ch3u_eager.c(257): warning #188: enumerated type mixed with another type
       MPIDI_Pkt_init(eager_pkt, reqtype);
       ^

reqtype is passed as an int, but is assigned to the enumeration type  
MPIDI_CH3_Pkt_type_t type field in the struct type MPIDI_CH3_Pkt_send_t.

Fixup: change the declaration of int reqtype to MPIDI_CH3_Pkt_type_t  
reqtype for the strongest type checking by the compiler, or coerce  
int reqtype to an MPIDI_CH3_Pkt_type_t using a cast in the call to  
MPIDI_Pkt_init().  I chose the former.  Edit the line numbers below  
to change the second argument in the function header declarations in  
src/mpid/ch3/src/ch3u_eager.c:

20:int MPIDI_CH3_EagerNoncontigSend( MPID_Request **sreq_p,
21:                                  MPIDI_CH3_Pkt_type_t reqtype,

111:int MPIDI_CH3_EagerContigSend( MPID_Request **sreq_p,
112:                               MPIDI_CH3_Pkt_type_t reqtype,

173:int MPIDI_CH3_EagerContigShortSend( MPID_Request **sreq_p,
174:                                    MPIDI_CH3_Pkt_type_t reqtype,

239:int MPIDI_CH3_EagerContigIsend( MPID_Request **sreq_p,
240:                                MPIDI_CH3_Pkt_type_t reqtype,

Edit the line numbers below to change the second argument in the  
function prototype declarations in src/mpid/ch3/include/mpidimpl.h:

1429:int MPIDI_CH3_EagerNoncontigSend( MPID_Request **,  
MPIDI_CH3_Pkt_type_t,  const void *, int,
1430:                                  MPI_Datatype, int, int, int,  
MPID_Comm *,
1431:                                  int );
1432:int MPIDI_CH3_EagerContigSend( MPID_Request **,  
MPIDI_CH3_Pkt_type_t, const void *, int, int,
1433:                               int, MPID_Comm *, int );
1434:int MPIDI_CH3_EagerContigShortSend( MPID_Request **,  
MPIDI_CH3_Pkt_type_t, const void *, int,
1435:                                    int, int, MPID_Comm *, int );
1436:int MPIDI_CH3_EagerContigIsend( MPID_Request **,  
MPIDI_CH3_Pkt_type_t, const void *, int, int,
1437:                                int, MPID_Comm *, int );

9.  Warnings for src/mpid/ch3/src/mpidi_pg.c:

mpidi_pg.c(84): warning #266: function declared implicitly
         MPIU_PG_Printall( stdout );
         ^

mpidi_pg.c(582): warning #266: function declared implicitly
         MPIDI_PG_CheckForSingleton();
         ^

MPIU_PG_Printall() and MPIDI_PG_CheckForSingleton() are implemented  
in src/mpid/ch3/src/mpidi_pg.c, but there are no function prototype  
declarations for them in any header files.

Fixup: insert the line numbers below to add function prototype  
declarations for MPIU_PG_Printall() and MPIDI_PG_CheckForSingleton()  
to src/mpid/ch3/include/mpidimpl.h:

420:
421:int MPIU_PG_Printall( FILE * );
422:int MPIDI_PG_CheckForSingleton( void );

10. Warnings for src/mpi/romio/adio/ad_testfs/ad_testfs_done.c:

ad_testfs_done.c(47): warning #592: variable "myrank" is used before  
its value is set
                 myrank, nprocs);
                 ^

ad_testfs_done.c(47): warning #592: variable "nprocs" is used before  
its value is set
                 myrank, nprocs);
                         ^

Fixup: edit the line numbers below in src/mpi/romio/adio/ad_testfs/ 
ad_testfs_done.c to declare the myrank and nprocs variables with  
initializers:

14:    int myrank = 0, nprocs = 0;

41:    int myrank = 0, nprocs = 0;

11. Warnings for src/util/dbg/dbg_printf.c:

dbg_printf.c(95): warning #188: enumerated type mixed with another type
       MPIUI_dbg_state = 0;
                       ^

dbg_printf.c(116): warning #188: enumerated type mixed with another type
         MPIUI_dbg_state |= MPIU_DBG_STATE_STDOUT;
                         ^

dbg_printf.c(120): warning #188: enumerated type mixed with another type
         MPIUI_dbg_state |= MPIU_DBG_STATE_MEMLOG;
                         ^

dbg_printf.c(124): warning #188: enumerated type mixed with another type
         MPIUI_dbg_state |= MPIU_DBG_STATE_FILE;
                         ^

dbg_printf.c(144): warning #188: enumerated type mixed with another type
             MPIUI_dbg_state &= ~MPIU_DBG_STATE_MEMLOG;
                             ^

Fixup: edit dbg_init() in src/util/dbg/dbg_printf.c to use the name  
of the enumeration constant in place of 0 when initializing the  
MPIUI_dbg_state variable, and to (MPIU_dbg_state_t) cast the int  
results from the |= and &= operations.  Change the code at the line  
numbers below from:

95:    MPIUI_dbg_state = 0;

116:        MPIUI_dbg_state |= MPIU_DBG_STATE_STDOUT;

120:        MPIUI_dbg_state |= MPIU_DBG_STATE_MEMLOG;

124:        MPIUI_dbg_state |= MPIU_DBG_STATE_FILE;

144:            MPIUI_dbg_state &= ~MPIU_DBG_STATE_MEMLOG;

to:

95:    MPIUI_dbg_state = MPIU_DBG_STATE_NONE;

116:        MPIUI_dbg_state =
117:            (MPIU_dbg_state_t) ( MPIUI_dbg_state |  
MPIU_DBG_STATE_STDOUT );

121:        MPIUI_dbg_state =
122:            (MPIU_dbg_state_t) ( MPIUI_dbg_state |  
MPIU_DBG_STATE_MEMLOG );

126:        MPIUI_dbg_state =
127:            (MPIU_dbg_state_t) ( MPIUI_dbg_state |  
MPIU_DBG_STATE_FILE );

147:            MPIUI_dbg_state =
148:                (MPIU_dbg_state_t) ( MPIUI_dbg_state &  
~MPIU_DBG_STATE_MEMLOG );

12. Warnings for src/pmi/simple/simple_pmiutil.c:

simple_pmiutil.c(125): warning #266: function declared implicitly
         MPIU_Internal_error_printf( "Panic - buffer inconsistent\n" );
         ^

MPIU_Internal_error_printf() is declared in src/include/mpibase.h,  
which is #include'd by src/include/mpiimpl.h.

Fixup: add #include "mpiimpl.h" (preferred?) or #include "mpibase.h"  
to src/pmi/simple/simple_pmiutil.c.  I chose the former.  Insert the  
line number below to #include "mpiimpl.h" to src/pmi/simple/ 
simple_pmiutil.c:

10:
11:#include "mpiimpl.h"

The only warnings that remain are nos. 2, 3, and 4, which can be  
ignored:

[root at thera mpich2-1.0.5-rc1]# grep warn make.log
2.  sock_init.i(67): warning #177: label "fn_exit" was declared but  
never referenced
3.  sock_set.i(246): warning #177: label "fn_exit" was declared but  
never referenced
4.  sock_misc.i(232): warning #177: label "fn_exit" was declared but  
never referenced
2.  sock_init.i(67): warning #177: label "fn_exit" was declared but  
never referenced
3.  sock_set.i(246): warning #177: label "fn_exit" was declared but  
never referenced
4.  sock_misc.i(232): warning #177: label "fn_exit" was declared but  
never referenced

The make install log file looked fine.

I'll run the installation tests after I do the Opteron 64-bit install  
with PGI compilers.

Larry Baker
US Geological Survey
650-329-5608
baker at usgs.gov




More information about the mpich2-dev mailing list