[MPICH] Compiling and using under WinXP/cygwin - use lib*.a in MPICH2\lib
Jayesh Krishna
jayesh at mcs.anl.gov
Thu Jan 24 17:05:22 CST 2008
Hi,
>>> /cygdrive/c/Progra~1/MPICH2/include/mpicxx.h:26:2: #error "SEEK_SET is
#defined but must not be for the C++ binding of MPI"
A solution to this problem is mentioned in the MPICH2 User's guide
(http://www.mcs.anl.gov/research/projects/mpich2/documentation/index.php?s=d
ocs) in the "Frequently asked questions" section. In short, include
"#undef"s for the macro defs, in the error mesg, before including mpi.h in
your source code (hellow.c).
Regards,
Jayesh
-----Original Message-----
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of madfran
Sent: Thursday, January 24, 2008 4:41 PM
To: mpich-discuss at mcs.anl.gov
Subject: RE:RE: RE: RE: RE: [MPICH] Compiling and using under WinXP/cygwin -
use lib*.a in MPICH2\lib
Hi,...
It seems better, but it is not the end. :-(
Today it is possible to compile.
For example for cpi.c,
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ g++
-I/cygdrive/c/Progra~1/MPICH2/include -L/cygdrive/c/Progra~1/MPICH2/lib c
pi.c -lmpi -o cpi.exe
Then the cpi.exe create do something.
C:\cygwin\tmp\mpi\mpich2-1.0.6p1\examples>mpiexec -n 2 cpi.exe Process 1 of
2 is on NOHW8156.eua.solvay.com Process 0 of 2 is on NOHW8156.eua.solvay.com
pi is approximately 3.1415926544231318, Error is 0.0000000008333387 wall
clock time = 0.001602
But other examples are impossible to compile.
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ g++
-I/cygdrive/c/Progra~1/MPICH2/include -L/cygdrive/c/Progra~1/MPICH2/lib h
ellow.c -lmpi -o hellow.exe In file included from
/cygdrive/c/Progra~1/MPICH2/include/mpi.h:1124,
from hellow.c:8:
/cygdrive/c/Progra~1/MPICH2/include/mpicxx.h:26:2: #error "SEEK_SET is
#defined but must not be for the C++ binding of MPI"
/cygdrive/c/Progra~1/MPICH2/include/mpicxx.h:30:2: #error "SEEK_CUR is
#defined but must not be for the C++ binding of MPI"
/cygdrive/c/Progra~1/MPICH2/include/mpicxx.h:35:2: #error "SEEK_END is
#defined but must not be for the C++ binding of MPI"
However I found the reason why make doesn't found the lib in the PATH.
I modify cygwin.bat,
-----------------------------------------------------------
@echo off
PATH=%PATH%:/cygdrive/c/Progra~1/MPICH2/include/
PATH=%PATH%:/cygdrive/c/Progra~1/MPICH2/lib/
C:
chdir C:\cygwin\bin
bash --login -i
------------------------------------------------------------
After this, make found the lib but it need libmpich.a and this file don't
existe in the distribution create by msi.
------------------------------------------------------------
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ make hellow gcc
-I../src/include -I../src/include -O2 -c hellow.c
make: *** No rule to make target `../lib/libmpich.a', needed by `hellow'.
Stop.
------------------------------------------------------------
Really do you think it is possible to compile under cygwin without install
MPICH2 under cygwin?
madfran
*******************************************************************
Hi,
The command below should be able to compile an MPI program written in C (or
set the appropriate env vars -- see g++ doc for details),
g++ -I<INCLUDE-DIR> -L<LIB-DIR> icpi.c -lmpi -o cpi_cygwin.exe
(eg:This is what I do, g++ -I/cygdrive/c/Progra~1/MPICH2/include
-L/cygdrive/c/Progra~1/MPICH2/lib icpi.c -lmpi -o cpi_cygwin.exe)
Regards,
Jayesh
-----Original Message-----
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of madfran
Sent: Wednesday, January 23, 2008 4:50 PM
To: mpich-discuss at mcs.anl.gov
Subject: RE:RE: RE: RE: [MPICH] Compiling and using under WinXP/cygwin - use
lib*.a in MPICH2\lib
Hi,...
I changed from mpicc to gcc and
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ make hellow gcc
-I../src/include -I../src/include -O2 -c hellow.c
hellow.c:8:17: mpi.h: No such file or directory
hellow.c: In function `main':
hellow.c:16: error: `MPI_COMM_WORLD' undeclared (first use in this function)
hellow.c:16: error: (Each undeclared identifier is reported only once
hellow.c:16: error: for each function it appears in.)
make: *** [hellow.o] Error 1
*******************************************************************
It seems are not able to find mpi.h
I modify the PATH
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/cygdrive/c/cygwin/lib:/cygdrive
/c
/P
erl/bin/:/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT:/cygdrive/c/WINNT/Syst
em
32
/Wbem:/cygdrive/c/Program Files/HPQ/IAM/bin:/cygdrive/c/Program Files/Common
Fil es/Autodesk Shared/:/cygdrive/c/program files/IXOS/IXOS-
eCONtext/bin:/cygdrive/c /program files/IXOS/IXOS-
eCONtext/opt/ORA/bin:/cygdrive/c/Oracle/ora8iclient/bin
:/cygdrive/c/Program
Files/Oracle/jre/1.1.7/bin:/cygdrive/c/Oracle/ora81/bin:/cy
gdrive/c/pgp:/cygdrive/c/Program Files/Common Files/AspenTech
Shared/:/cygdrive/ c/DJGPP/BIN:/cygdrive/c/Program
files/MPICH2/bin:/usr/bin:/cygdrive/c/Program
Fi
les/Nmap:/cygdrive/c/Program
files/MPICH2/bin:/cygdrive/c/PGP:/bin:/cygdrive/c/P
rogram Files/MPICH2/include/:/cygdrive/c/Program Files/MPICH2/lib/
********************************************************************
Without succes. I don't know the reason.
I copied the mpi.h from c:\Program Files\MPICH2\include\ to
c:\cygwin\...\src\include\
Result,
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ make hellow gcc
-I../src/include -I../src/include -O2 -c hellow.c In file included from
hellow.c:8:
../src/include/mpi.h:1108:18: mpio.h: No such file or directory
make: *** [hellow.o] Error 1
********************************************************************
I copied the mpio.h from c:\Program Files\MPICH2\include\ to
c:\cygwin\...\src\include\
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ make hellow gcc
-I../src/include -I../src/include -O2 -c hellow.c
make: *** No rule to make target `../lib/libmpich.a', needed by `hellow'.
Stop.
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples
********************************************************************
But libmpich.a doesn't exist in any place
Any idea?
madfran
********************************************************************
********************************************************************
Hi,
>>>I remove c:\cygwin\home\yo\MPICH2\... Then, I am not able to compile
under cygwin
mpicc is a script provided with MPICH2 installation to compile MPI programs.
You should use gcc/g++ directly to compile programs after removing the
MPICH2 installation.
>>>...found under c:\Program Files\MPICH2\lib\ must be copied under cygwin?
You can access the files in windows without copying them.
(/cygdrive/c/Progra~1/MPICH2/lib)
Regards,
Jayesh
-----Original Message-----
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of madfran
Sent: Tuesday, January 22, 2008 4:18 PM
To: mpich-discuss at mcs.anl.gov
Subject: RE: RE: RE: [MPICH] Compiling and using under WinXP/cygwin - use
lib*.a in MPICH2\lib
Hi,...
>
>>>>> 1-Can you send me a procedure ?
>Just remove the MPICH2 install directory under cygwin (or modify the
>PATH accordingly). Install MPICH2 using the MSI installer.
I remove c:\cygwin\home\yo\MPICH2\
and remove the related information in $PATH I erase also all the build
directory ...Then, I am not able to compile under cygwin
This is the output,
BE04845 at NOHW8156 /tmp/mpi/mpich2-1.0.6p1/examples $ make cpi ../bin/mpicc
-I../src/include -I../src/include -O2 -c cpi.c
make: ../bin/mpicc: Command not found
make: *** [cpi.o] Error 127
>>>>> 2-I will be able to compile other programs under cygwin if MPICH2
>>>>> it is
>not installed under cygwin?
>As I mentioned in my previous email, "You should make sure that you use
>the libraries (lib*.a)provided with the windows installation of MPICH2
>(in MPICH2\lib) when compiling your program under cygwin (if you want
>to run the program using the windows version of MPICH2)." You are
>provided a set of libraries, MPICH2\lib\lib*.a, with the MPICH2
>installation (MSI
>installation) to be used with cygwin gcc. See the windows developer's
>guide for more details
>(http://www.mcs.anl.gov/research/projects/mpich2/documentation/index.ph
>p?s=d
>ocs).
In mpich2-doc-windev.pdf they are not any information about compiling under
cygwin
When you say "You should make sure that you use the libraries (lib*.a)
provided with the windows installation of MPICH2 (in MPICH2\lib) when
compiling your program under cygwin (if you want to run...."
It seems that the files,
libfmpich2g.a
libmpi.a
libmpicxx.a
found under c:\Program Files\MPICH2\lib\ must be copied under cygwin?
madfran
************************************************************************
-----Original Message-----
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of madfran
Sent: Monday, January 21, 2008 4:50 PM
To: mpich-discuss at mcs.anl.gov
Subject: RE: RE: [MPICH] Compiling and using under WinXP/cygwin
Hi,..
I am sure I use the mpiexec from MSI, but however with the mpiexec from
cygwin I obtain the same result.
smpd.exe -status, say me,
"smpd running on NOHW8156"
Well. I think will be necessary to remove the installation of MPICH2 from
cygwin and remain only with the installation from msi.
1-Can you send me a procedure ?
2-I will be able to compile other programs under cygwin if MPICH2 it is not
installed under cygwin?
madfran
>Hi,
>Can you make sure that you are using the mpiexec installed using the
>MSI installer when running your program, compiled under cygwin, on
>windows ? You should make sure that you use the libraries (lib*.a)
>provided with the windows installation of MPICH2 (in MPICH2\lib) when
>compiling your program under cygwin (if you want to run the program
>using the windows version of MPICH2).
>We recommend windows users to only install MPICH2 using the MSI
>installer (and not recompile under cygwin). The user can then compile
>his/her programs using the cygwin compiler suite and headers/libs
>provided with the MPICH2 installation (using the MSI installer).
>Also make sure that you have the process manager running on your system
>(After making sure that you are running smpd.exe installed using the
>MSI installer, type "smpd.exe -status" to get the status of the process
>manager).
>
>Regards,
>Jayesh
>-----Original Message-----
>From: owner-mpich-discuss at mcs.anl.gov
>[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of madfran
>Sent: Friday, January 18, 2008 3:10 PM
>To: mpich-discuss at mcs.anl.gov
>Subject: [MPICH] Compiling and using under WinXP/cygwin
>
>Hi,...
>
>Situation.
>OS Windows XP
>cygwin
>Over XP I install mpich2 using "mpich2-1.0.6p1-win32-ia32.msi"
>Over cygwin install mpich2 using "mpich2-1.0.6p1.tar.gz"
>
>Facts
>I can't compile any software under cygwin that work under pmi but its
>work well.
>
>Example.
>I compile the soft "hellow" found under the
>.../mpich2-1.0.6p1/examples/ and created the "hellow.exe"
>
>I launch hellow.exe without problems under cygwin
>/tmp/mpi/mpich2-1.0.6p1/examples $ ./hellow.exe Hello world from
>process 0 of 1
>
>But with mpiexec the result is,
>/tmp/mpi/mpich2-1.0.6p1/examples
>$ mpiexec -n 2 ./hellow.exe
>[unset]: unable to decode hostport from 1245
>[unset]: aborting job:
>Fatal error in MPI_Init: Other MPI error, error stack:
>MPIR_Init_thread(294): Initialization failed
>MPID_Init(82)........: channel initialization failed
>MPID_Init(333).......: PMI_Init returned -1
>[unset]: unable to decode hostport from 1252
>[unset]: aborting job:
>Fatal error in MPI_Init: Other MPI error, error stack:
>MPIR_Init_thread(294): Initialization failed
>MPID_Init(82)........: channel initialization failed
>MPID_Init(333).......: PMI_Init returned -1
>
>**********************************************************************
>Same result under cmd WinXP
>
>C:\cygwin\tmp\mpi\mpich2-1.0.6p1\examples>hellow.exe
>Hello world from process 0 of 1
>
>C:\cygwin\tmp\mpi\mpich2-1.0.6p1\examples>mpiexec -n 2 -localroot
>hellow.exe
>[unset[unset]: unable to decode hostport from 1318
>[]: unable to decode hostport from 1325
>[unsetunset]: aborting job:
>Fatal error in MPI_Init: Other MPI error, error stack:
>MPIR_Init_thread(294): Initialization failed
>MPID_Init(82)........: channel initialization failed
>MPID_Init(333).......: PMI_Init returned -1
>]: aborting job:
>Fatal error in MPI_Init: Other MPI error, error stack:
>MPIR_Init_thread(294): Initialization failed
>MPID_Init(82)........: channel initialization failed
>MPID_Init(333).......: PMI_Init returned -1
>
>madfran
More information about the mpich-discuss
mailing list