[mpich-discuss] need to compile unix code as windows exe

Jayesh Krishna jayesh at mcs.anl.gov
Mon Dec 1 09:55:39 CST 2008


 Hi,

>> ...and in the main project, it is only in another folder, and it is
complaining about all mpi calls...
	This should be some problem with linking your program with the MPI
library (path to library etc). Can you compile your program (main project)
by using gcc from command prompt (Are you using a makefile ? ) ? What is
the command that you use to compile your main program (main.c).

>> ..."mpiexec -validate" fails...
	Try running "mpiexec -register" from a windows command prompt.
Make sure that you specify the DOMAIN_NAME when specifying your USERNAME
if the user is a domain user. When you register your username/password,
mpiexec does not validate whether the username/password combination is
valid. The check is performed only when you run "mpiexec -validate".

Regards,
Jayesh

-----Original Message-----
From: Manal Helal [mailto:manalorama at gmail.com] 
Sent: Thursday, November 27, 2008 7:16 PM
To: Jayesh Krishna
Cc: mpich-discuss at mcs.anl.gov; Dmitri Chubarov
Subject: Re: [mpich-discuss] need to compile unix code as windows exe

Hello

sorry for the late reply.

I removed MPICH2 on windows XP, and resinatlled the
"mpich2-1.0.8-win-ia32.msi" downloaded on the 19th of November. I don't
have now the libraries as zero kb as before. Now I can link -lmpi and it
works and not lmpich like before.

However, in the sample program it is linking and generating the exe file,
and in the main project, it is only in another folder, and it is
complaining about all mpi calls : beginning from

/home/user/project/main.c:314: undefined reference to `_MPI_Init'

down to:


/home/user/project/main.c:366: undefined reference to `_MPI_Finalize'


again for the hello.exe test program generated, I can not run as before,
and the "mpiexec -validate" fails, and I don't know how to fix that, I see
the computer name in the wmpiconfig and I used the default parameters, and
in the wmpiregister I register the windows account I am using, and it says
"Password encrypted into the Registry." and I click OK, and that's it. but
every time I open the wmpiregister again, I don't see the registered
account.

I really appreciate your help,

Kind Regards,

Manal

2008/11/20 Jayesh Krishna <jayesh at mcs.anl.gov>:
> Hi,
>
>>> ...For the credentials, I did register first, and it seem accepted 
>>> the registration, no error messages or anything...
>     Make sure that you explicitly validate the registered 
> username/password using the "mpiexec -validate" command.
>     Let us know the results.
>
> Regards,
> Jayesh
>
> ________________________________
> From: Manal Helal [mailto:manalorama at gmail.com]
> Sent: Tuesday, November 18, 2008 9:07 PM
> To: Jayesh Krishna
> Cc: mpich-discuss at mcs.anl.gov; Dmitri Chubarov
> Subject: Re: [mpich-discuss] need to compile unix code as windows exe
>
> Hi Jayesh
>
> Thank you very much for your reply.
>
> I actually removed, rebooted, and re-installed MPICH2 for windows 
> several times before. I also made sure the folder is completely 
> erased. I downloaded now again, and will try and let you know
>
> For the credentials, I did register first, and it seem accepted the 
> registration, no error messages or anything,
>
> Thanks again,
>
> Kind Regards,
>
> Manal
>
>
>
> 2008/11/19 Jayesh Krishna <jayesh at mcs.anl.gov>
>>
>> Hi,
>>         Please find my comments below,
>>
>> >> ...the file "libmpi.a" and "libfmpich2g.a" in "C:\Program 
>> >> Files\MPICH2\lib" are 0kb files ...
>>  The gcc libs should not be 0kb in size. There is something wrong 
>> with your installation of MPICH2. I recommend that you uninstall your 
>> current version of MPICH2, reboot your machine (so that you don't 
>> have any MPI programs running in the bg), install the latest stable 
>> version (1.0.8) of MPICH2.
>>
>> >> ...Credentials for Manal rejected connecting to mhelallpt-xp
Aborting:
>> >> Unable to connect to mhelallpt-xp ...
>>  You have not registered your username/password correctly with mpiexec.
>> You should run "mpiexec -register" and register your 
>> username/password (Run "mpiexec -validate" to make sure that the 
>> registered username/password
>> works)
>>
>> Regards,
>> Jayesh
>> -----Original Message-----
>> From: Manal Helal [mailto:manalorama at gmail.com]
>> Sent: Tuesday, November 18, 2008 5:00 AM
>> To: Jayesh Krishna
>> Cc: mpich-discuss at mcs.anl.gov; 'Dmitri Chubarov'
>> Subject: Re: [mpich-discuss] need to compile unix code as windows exe
>>
>> Hello
>>
>> Thank you for your help, but I still need help to get my program 
>> running on a windows cluster please. I followed both approaches as 
>> mentioned before,
>>
>> The first is trying to configure mpich2-1.0.8 to use mpicc on cygwin, 
>> gives the following errors on cygwin on Windows XP 2002 with SP 3
>> *****************************************
>> $ ./configure
>> ./configure: line 12: $'\r': command not found
>> ./configure: line 23: syntax error near unexpected token `$'in\r''
>> '/configure: line 23: `  case `(set -o) 2>/dev/null` in
>> *****************************************
>>
>> the second is using the cygwin gcc and linking with lmpich, and 
>> that's how it goes:
>>
>> some information that might help:
>> the file "libmpi.a" and "libfmpich2g.a" in "C:\Program
Files\MPICH2\lib"
>> are 0kb files, I have "libmpichd.a" as a 1061 Kb file in the same 
>> folder, and "libmpich.a" as 1058 KB, and 'libmpicxx.a" as 199 kb 
>> file, "mpi.lib" is a 126 kb file, and "fmpich2.lib" as 130 kb file.
>>
>> the gcc version is
>> *****************************************
>> $ gcc -v
>> Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
>> Configured with:
>> /usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --ver bose 
>> --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib 
>> --libe xecdir=/usr/lib --mandir=/usr/share/man 
>> --infodir=/usr/share/info --enable-langu 
>> ages=c,ada,c++,d,f77,pascal,java,objc --enable-nls 
>> --without-included-gettext -- enable-version-specific-runtime-libs
>> --without-x --enable-libgcj
>> --disable-java-
>> awt --with-system-zlib --enable-interpreter --disable-libgcj-debug 
>> --enable-thre ads=posix --enable-java-gc=boehm 
>> --disable-win32-registry --enable-sjlj-exceptio ns 
>> --enable-hash-synchronization --enable-libstdcxx-debug Thread model: 
>> posix gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
>> *****************************************
>>
>> compiling a simple program like :
>> *****************************************
>> #include <stdio.h>
>> #include <math.h>
>> #include <mpi.h>
>>
>> int main(int argc, char **argv) {
>>     int myProcid, ClusterSize;
>>     MPI_Init(&argc, &argv);
>>     MPI_Comm_rank(MPI_COMM_WORLD, &myProcid);
>>     MPI_Comm_size(MPI_COMM_WORLD, &ClusterSize);
>>     printf ("Hello World Process %d / %d.\n", myProcid, ClusterSize);
>>     //printf ("the ceill(10.55) = %lld\n" , ceill(10.55));
>>     getc (stdin);
>>     MPI_Finalize();
>>     return 0;
>> }
>> *****************************************
>> It is compiled as:
>> *****************************************
>> $ gcc hello.c -I "/cygdrive/f/Program Files/MPICH2/include" -L 
>> "/cygdrive/f/Program Files/MPICH2/lib" -lmpich -lm -o hello.exe
>>
>> creates the exe file with no errors, however, when I try to execute 
>> it using the mpich2 for windows "wmpiexec" Interface with 4 processes 
>> all on the current node and showing different windows, the windows 
>> don't come up, command shown is:
>> *****************************************
>> "C:\Program Files\MPICH2\bin\mpiexec.exe" -n 4  -noprompt 
>> "C:\cygwin\home\user\hello.exe"
>> *****************************************
>>
>> copying the same command to cygwin, I get the errors shown:
>> *****************************************
>> $ "/cygdrive/f/Program Files/MPICH2/bin/mpiexec.exe" -n 4  -noprompt 
>> hello.exe Credentials for Manal rejected connecting to mhelallpt-xp
>> Aborting: Unable to connect to mhelallpt-xp
>> *****************************************
>>
>>
>> However, compiling my mpi program using the following command in a 
>> make
>> file:
>> *****************************************
>> $gcc "/cygdrive/f/Program Files/MPICH2/include" -L 
>> "/cygdrive/f/Program Files/MPICH2/lib" -lmpich -lm  main.c
>>
>> where the main.o is:
>> main.o :  main.c main.h utils.h globals.h
>>     gcc -g -I "/cygdrive/f/Program Files/MPICH2/include" -L 
>> "/cygdrive/f/Program Files/MPICH2/lib" main.c -lmpich -o main.o
>> *****************************************
>>
>>
>> I get the following errors:
>> *****************************************
>> /home/user/proj/main.c:112: undefined reference to `_MPI_Barrier'
>> /home/user/proj/main.c:174: undefined reference to `_MPI_Wtime'
>> /home/user/proj/main.c:242: undefined reference to `_MPI_Send'
>> /home/user/proj/main.c:251: undefined reference to `_MPI_Recv'
>> /home/user/proj/main.c:314: undefined reference to `_MPI_Init'
>> /home/user/proj/main.c:316: undefined reference to `_MPI_Comm_rank'
>> /home/user/proj/main.c:318: undefined reference to `_MPI_Comm_size'
>> /home/user/proj/main.c:320: undefined reference to `_MPI_Comm_group'
>> /home/user/proj/main.c:321: undefined reference to `_MPI_Comm_create'
>> /home/user/proj/main.c:366: undefined reference to `_MPI_Finalize'
>> /home/user/proj/main.c:3254: undefined reference to `_MPI_Waitall'
>> /home/user/proj/main.c:3379: undefined reference to `_MPI_Isend'
>> /home/user/proj/main.c:3514: undefined reference to `_MPI_Iprobe'
>> /home/user/proj/main.c:3520: undefined reference to `_MPI_Recv'
>> *****************************************
>>
>> It is basically all MPI calls I make, and what I couldn't understand, 
>> why the "MPI_Init" "MPI_Comm_rank", "MPI_Comm_size" and "MPI_Finalize"
>> was found on the test program, and not found in the main program.
>>
>> when I compile using the above command without the make file, I get 
>> more errors like:
>>
>> *****************************************
>> main.c:165: error: `MPI_Status' undeclared (first use in this 
>> function)
>> main.c:242: error: `MPI_INT' undeclared (first use in this function)
>> main.c:302: error: `MPI_Group' undeclared (first use in this 
>> function)
>> main.c:316: error: `MPI_COMM_WORLD' undeclared (first use in this
>> function)
>> main.c:3432: error: `MPI_LONG' undeclared (first use in this 
>> function)
>> main.c:3435: error: `MPI_LONG_LONG' undeclared (first use in this
>> function)
>> main.c:3485: error: `MPI_Status' undeclared (first use in this 
>> function)
>> main.c:3514: error: `MPI_ANY_SOURCE' undeclared (first use in this
>> function)
>> main.c:3514: error: `MPI_ANY_TAG' undeclared (first use in this 
>> function)
>> main.c:3520: error: `MPI_LONG' undeclared (first use in this 
>> function)
>> main.c:3533: error: `MPI_LONG_LONG' undeclared (first use in this
>> function)
>> main.c:3205: error: `MPI_SUCCESS' undeclared (first use in this 
>> function)
>> main.c:3209: error: `MPI_ERR_COMM' undeclared (first use in this 
>> function)
>> main.c:3213: error: `MPI_ERR_TYPE' undeclared (first use in this 
>> function)
>> main.c:3217: error: `MPI_ERR_COUNT' undeclared (first use in this
>> function)
>> main.c:3221: error: `MPI_ERR_TAG' undeclared (first use in this 
>> function)
>> main.c:3225: error: `MPI_ERR_RANK' undeclared (first use in this 
>> function)
>> *****************************************
>>
>> I also  get simillar errors to all long long functions which are not 
>> found on cygwin when I searched or used the "man" command like the
>> following:
>>
>> *****************************************
>> /home/user/proj/main.c:907: undefined reference to `_sqrtl'
>> /home/user/proj/main.c:1743: undefined reference to `_powl'
>> /home/user/proj/main.c:2006: undefined reference to `_ceill'
>> /home/user/proj/main.c:2035: undefined reference to `_floorl'
>> *****************************************
>> I appreciate your help a lot,
>>
>> Kind Regards,
>>
>> Manal
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20081201/1a739976/attachment.htm>


More information about the mpich-discuss mailing list