Newsgroups: comp.parallel.mpi
From: brian@lstc.com (Brian F. Wainscott)
Subject: MPI on HPUX (was Re: MPI on an SP2)
Organization: Livermore Software Technology Corporation
Date: Wed, 25 Jan 1995 15:00:39 GMT
Message-ID: <D2yv13.BAA@lstc.com>

In message <3fmjem$dmh@news.doit.wisc.edu> - ahmadz@cae.wisc.edu (Ahmad Abualsa
mid) writes:
>In article <D2Ko8H.C5B@cs.dal.ca>, edemaine@ug.cs.dal.ca says...
>
>>
>
>>Has anyone compiled MPICH on an HP sucessfully?
>>
>>Any help would be appreciated!
>>Erik
>>--
>I compiled mpich-1.0.7 on HP's, DEC ALPHA, and SGI IRIX. i had problems
>compiling 1.0.6, i am not really familiar with mpich so i can not tell
>you what you are doing wrong, but in my case i had to configure few times
>(with different options) to get it to compile on the HP (HP 735, hp-ux 
>9.05)

I compiled both 1.0.6 and 1.0.7 on our HP machines (HP 715 with hp-ux 9.05)
1.0.7 was easy -- it even recognized the machine.

I didn't see your original post, but one thing that could be a problem:
our machines originally didn't have the full C and FORTRAN compilers (just
a "minimal" compiler that came with the OS -- the add-on has some extra 
features/switches that MPICH seems to expect everyone to have).  If you are 
in the same position, I don't know of anything to help other than getting the 
add on C compiler.  Maybe gcc?

Now -- I've got MPICH 1.0.7 running on a LAN of 7 hp-715 workstations.  But
whenever I try to do an IRECV/ISEND pair of messages >= 4K, things come
to a screaching halt.  Even with the IRECV posted and waiting, ISEND hangs!
I sent Email to mpi-bugs@whereever_it_was_supposed_to_go, and all I got back
was "Humm, probably a bug in HP's socket stuff"  Not very helpful, to say
the least.

Anyone out there with MPICH 1.0.7 running on an HP network?  Any such
people willing to help me figure this out?  At least willing to run my
(40-50 line C code) test problem (that hangs on our system)?  If so,
please let me know how it goes.  If we can ALL show this hangs, perhaps
we can get someone to fix it.  Or maybe someone of you can tell me what
I'm doing wrong?  Program attached below, for anyone interested.

Thanks for any replies!

-------------------------------------------------------------------
Brian Wainscott       
brian@lstc.com
-------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include "mpi.h"
#define MLEN 1024
#define NSEND 8
main(int argc, char *argv[])
{
int iam, numproc;
MPI_Request idout[NSEND], idin[NSEND];
int bout[NSEND*MLEN],bin[NSEND*MLEN];
int i,j,k,itmp[100];
int flag;
MPI_Status status;
MPI_Group global_group, new_group;
MPI_Comm comm,comm2;

MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&iam);
MPI_Comm_size(MPI_COMM_WORLD,&numproc);

for(i=0; i<NSEND; i++)
  MPI_Irecv(bin+i*MLEN,MLEN,MPI_INT,MPI_ANY_SOURCE,1,MPI_COMM_WORLD,
      idin+i);
printf("%d: Receives posted\n",iam);
j=(iam+1)%numproc;
for(i=0; i<NSEND; i++)
  MPI_Isend(bout+i*MLEN,MLEN,MPI_INT,j,1,MPI_COMM_WORLD,
      idout+i);
printf("%d: Sends posted\n",iam);

printf("%d: going to test them\n",iam);
do {
  MPI_Testany(NSEND,idin,&i,&flag,&status);
} while (!flag);
printf("%d: got %d\n",iam,j);
MPI_Finalize();
}




