Re: [OMPI users] INSTALL bug in 64-bit build of OpenMPI Release build on Windows - has workaround

2010-02-05 Thread Marcus G. Daniels
Shiqing, Damien,

> If you already have an x86 solution, and you want to have
> another for x64, you have to start over from the CMake-GUI, select the
> 64 bit generator, i.e. "Visual Studio 9 2008 64bit", so that to generate
> the a new solution in a different directory.

That was the source of my problem.  I had overlooked the other Visual
Studio 9 2008 option, thinking there was just one for the package -- and
ended up thinking I had to switch using the configuration manager in
VS2008 itself.

Thanks!

Marcus



Re: [OMPI users] Anybody built a working 1.4.1 on Solaris 8 (Sparc)?

2010-02-05 Thread Iain Bason


On Feb 4, 2010, at 4:52 PM, David Mathog wrote:


Has anybody built 1.4.1 on Solaris 8 (Sparc), because it isn't going
very well here.  If you succeeded at this please tell me how you did  
it.


Here is my tale of woe.

First attempt with gcc (3.4.6 from SunFreeware) and

 ./configure --with-sge --prefix=/opt/ompi141


I think you need to add --enable-heterogeneous because you are trying  
to run this on a cluster of SPARC and IA32 machines.  (You will also  
need to use that configure flag to build OMPI on your IA32 machines.)


Iain


Re: [OMPI users] Anybody built a working 1.4.1 on Solaris 8 (Sparc)?

2010-02-05 Thread Terry Dontje
We haven't tried Solaris 8 in quite some time.  However, for your first 
issue did you include the --enable-heterogeneous option on your 
configure command?


Since you are mix IA-32 and SPARC nodes you'll want to include this so 
the endian issue doesn't bite you.


--td


Message: 5
Date: Thu, 04 Feb 2010 13:52:05 -0800
From: "David Mathog" 
Subject: [OMPI users] Anybody built a working 1.4.1 on Solaris 8
(Sparc)?
To: us...@open-mpi.org
Message-ID: 
Content-Type: text/plain; charset=iso-8859-1

Has anybody built 1.4.1 on Solaris 8 (Sparc), because it isn't going
very well here.  If you succeeded at this please tell me how you did it.

Here is my tale of woe.

First attempt with gcc (3.4.6 from SunFreeware) and

  ./configure --with-sge --prefix=/opt/ompi141
  gmake all install >build_log1 2>&1

built ok (needed the same source changes described by Brian Blank for
1.3.1 or it wouldn't compile

  http://www.open-mpi.org/community/lists/users/2009/02/7994.php

), and mpirun worked OK with hello_c so long as it only sent jobs to the
same machine like this:

  cat >justme &1 &
 gmake all install >build_log2 2>&1

and it had problems with vt_tracefilter.cc, where it stopped at:

"The compiler currently does not permit non-POD variables ("name") in
OpenMP regions".

This was because of -DVT_OMP on the compilation line.  Removed it, then
the compiler did not include omp.h (ancient OpenMPI header file that
came with Forte 7), compiled that one file manually, restarted the gmake
and hit:

 /opt/SUNWspro/bin/CC -DHAVE_CONFIG_H -I. -I../.. \
 -I../../extlib/otf/otflib -I../../extlib/otf/otflib \
 -I../../vtlib/   -xopenmp -DVT_OMP -xarch=v8plusa -c \
 -o vtunify-vt_unify.o \
`test -f 'vt_unify.cc' || echo './'`vt_unify.cc
CC: Warning: Optimizer level changed from 0 to 3 to support parallelized
code
"vt_unify_stats.h", line 70: Error: m_iFuncStatSortFlags is not
accessible from Statistics::FuncStat_struct::operator<(const
Statistics::FuncStat_struct&) const.
1 Error(s) detected.

This error didn't go away when -DVT_OMP was removed, nor when -xopenmp
was also taken away, and so the final score is:  working OpenMPI 1.4.1
on Solaris = 0 for 2 attempts.

Thanks,

David Mathog
mat...@caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech




[OMPI users] Infiniband Question

2010-02-05 Thread Mike Hanby
Howdy,

When running a Gromacs job using OpenMPI 1.4.1 on Infiniband enabled nodes, I'm 
seeing the following process listing:

\_ -bash /opt/gridengine/default/spool/compute-0-3/job_scripts/97037
\_ mpirun -np 4 mdrun_mpi -v -np 4 -s production-Npt-323K_4CPU -o 
production-Npt-323K_4CPU -c production-Npt-323K_4CPU -x 
production-Npt-323K_4CPU -g production-Npt-323K_4CPU.log
\_ /opt/gridengine/bin/lx26-amd64/qrsh -inherit -nostdin -V 
compute-0-4.local  orted -mca ess env -mca orte_ess_jobid 945881088
-mca orte_ess_vpid 1 -mca orte_ess_num_procs 4 --hnp-uri 
"945881088.0;tcp://192.168.20.252:39440;tcp://192.168.21.252:39440"
\_ /opt/gridengine/bin/lx26-amd64/qrsh -inherit -nostdin -V 
compute-0-2.local  orted -mca ess env -mca orte_ess_jobid 945881088
-mca orte_ess_vpid 2 -mca orte_ess_num_procs 4 --hnp-uri 
"945881088.0;tcp://192.168.20.252:39440;tcp://192.168.21.252:39440"
\_ /opt/gridengine/bin/lx26-amd64/qrsh -inherit -nostdin -V 
compute-0-1.local  orted -mca ess env -mca orte_ess_jobid 945881088
-mca orte_ess_vpid 3 -mca orte_ess_num_procs 4 --hnp-uri 
"945881088.0;tcp://192.168.20.252:39440;tcp://192.168.21.252:39440"
\_ mdrun_mpi -v -np 4 -s production-Npt-323K_4CPU -o 
production-Npt-323K_4CPU -c production-Npt-323K_4CPU
-x production-Npt-323K_4CPU -g production-Npt-323K_4CPU.log

Is it normal for these tcp addresses to be listed if the job is using 
Infiniband?

The 192.168.20.x subnet is the eth0 GigE network
And the 192.168.21.x subnet is the ib0 IPoverIB network

Or is this job actually using TCPIP over Infiniband / GigE?

I'm running mpirun without any special fabric includes / excludes.

ompi_info lists openib as a valid fabric:
$ ompi_info |grep openib
 MCA btl: openib (MCA v2.0, API v2.0, Component v1.4.1)

Thanks for any insight,

Mike
=
Mike Hanby
mha...@uab.edu
Information Systems Specialist II
IT HPCS / Research Computing





Re: [OMPI users] Infiniband Question

2010-02-05 Thread Jeff Squyres
Yep -- it's normal.

Those IP addresses are used for bootstrapping/startup, not for MPI traffic.  In 
particular, that "HNP URI" stuff is used by Open MPI's underlying run-time 
environment.  It's not used by the MPI layer at all.


On Feb 5, 2010, at 2:32 PM, Mike Hanby wrote:

> Howdy,
> 
> When running a Gromacs job using OpenMPI 1.4.1 on Infiniband enabled nodes, 
> I'm seeing the following process listing:
> 
> \_ -bash /opt/gridengine/default/spool/compute-0-3/job_scripts/97037
> \_ mpirun -np 4 mdrun_mpi -v -np 4 -s production-Npt-323K_4CPU -o 
> production-Npt-323K_4CPU -c production-Npt-323K_4CPU -x 
> production-Npt-323K_4CPU -g production-Npt-323K_4CPU.log
> \_ /opt/gridengine/bin/lx26-amd64/qrsh -inherit -nostdin -V 
> compute-0-4.local  orted -mca ess env -mca orte_ess_jobid 945881088
> -mca orte_ess_vpid 1 -mca orte_ess_num_procs 4 --hnp-uri 
> "945881088.0;tcp://192.168.20.252:39440;tcp://192.168.21.252:39440"
> \_ /opt/gridengine/bin/lx26-amd64/qrsh -inherit -nostdin -V 
> compute-0-2.local  orted -mca ess env -mca orte_ess_jobid 945881088
> -mca orte_ess_vpid 2 -mca orte_ess_num_procs 4 --hnp-uri 
> "945881088.0;tcp://192.168.20.252:39440;tcp://192.168.21.252:39440"
> \_ /opt/gridengine/bin/lx26-amd64/qrsh -inherit -nostdin -V 
> compute-0-1.local  orted -mca ess env -mca orte_ess_jobid 945881088
> -mca orte_ess_vpid 3 -mca orte_ess_num_procs 4 --hnp-uri 
> "945881088.0;tcp://192.168.20.252:39440;tcp://192.168.21.252:39440"
> \_ mdrun_mpi -v -np 4 -s production-Npt-323K_4CPU -o 
> production-Npt-323K_4CPU -c production-Npt-323K_4CPU
> -x production-Npt-323K_4CPU -g production-Npt-323K_4CPU.log
> 
> Is it normal for these tcp addresses to be listed if the job is using 
> Infiniband?
> 
> The 192.168.20.x subnet is the eth0 GigE network
> And the 192.168.21.x subnet is the ib0 IPoverIB network
> 
> Or is this job actually using TCPIP over Infiniband / GigE?
> 
> I'm running mpirun without any special fabric includes / excludes.
> 
> ompi_info lists openib as a valid fabric:
> $ ompi_info |grep openib
>  MCA btl: openib (MCA v2.0, API v2.0, Component v1.4.1)
> 
> Thanks for any insight,
> 
> Mike
> =
> Mike Hanby
> mha...@uab.edu
> Information Systems Specialist II
> IT HPCS / Research Computing
> 
> 
> 
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 


-- 
Jeff Squyres
jsquy...@cisco.com

For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/




Re: [OMPI users] hostfiles

2010-02-05 Thread Jeff Squyres
On Feb 4, 2010, at 7:55 PM, Ralph Castain wrote:

> Take a look at orte/mca/rmaps/seq - you can select it with -mca rmaps seq
> 
> I believe it is documented

...if it isn't, can it be added to the man page?  It might be a common mpirun / 
hostfile question...?

-- 
Jeff Squyres
jsquy...@cisco.com

For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/




Re: [OMPI users] DMTCP: Checkpoint-Restart solution for OpenMPI

2010-02-05 Thread Jeff Squyres
On Jan 31, 2010, at 10:39 PM, Kapil Arya wrote:

> DMTCP also supports a dmtcpaware interface (application-initiated
> checkpoints), and numerous other features.  At this time, DMTCP
> supports only the use of Ethernet (TCP/IP) and shared memory for
> transport. We are looking at supporting the Infiniband transport layer
> in the future.

It sounds like you have taken a virtualized approach to intercepting network 
calls, etc.  Is that right?

If so, it would be interesting to see what the performance impact is on some of 
the OS-bypass / high-performance networks.  Previous efforts have taken big 
performance hits and run into interesting challenges (e.g., can't know the 
state of the hardware NIC, even if you intercept all the function calls).

> Finally, a bit of history.  DMTCP began with a goal of checkpointing
> distributed desktop applications.  We recognize the fine
> checkpoint-restart solution that already exists in OpenMPI:
> checkpoint-restart service on top of BLCR.  We offer DMTCP as an
> alternative for some unusual situations, such as when the end user
> does not have privilege to add the BLCR kernel module.  We are eager
> to gain feedback from the OpenMPI community.

Have you looked at our plugin capabilities?  BLCR is just a plugin to us -- we 
can support others.  Is it worthwhile / possible to hook your technology in via 
Open MPI plugins?  Josh did some great work to make it pretty extensible.

-- 
Jeff Squyres
jsquy...@cisco.com

For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/




Re: [OMPI users] Anybody built a working 1.4.1 on Solaris 8 (Sparc)?

2010-02-05 Thread David Mathog
Terry Dontje  wrote

> We haven't tried Solaris 8 in quite some time.  However, for your first 
> issue did you include the --enable-heterogeneous option on your 
> configure command?
> 
> Since you are mix IA-32 and SPARC nodes you'll want to include this so 
> the endian issue doesn't bite you.

Added that on the configure, rebuilt, installed, and now the examples work. 

Any thoughts on the Forte compiler issue?  This is not quite as pressing
now that the gcc version works, and most of the computation will be on
the remote nodes anyway.  Still, the Forte compilers should generate
faster code than gcc, and I would prefer to use them if possible.

Thanks,

David Mathog
mat...@caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech


Re: [OMPI users] DMTCP: Checkpoint-Restart solution for OpenMPI

2010-02-05 Thread Jeff Squyres
On Feb 5, 2010, at 6:40 PM, Gene Cooperman wrote:

> You're correct that we take a virtualized approach by intercepting network
> calls, etc.  However, we purposely never intercept any frequently
> called system calls.  So, for example, we never intercept a call
> to read() or to write() in TCP/IP, as part of our core design principles.
> Instead, we use things like the proc filesytem and the use of system calls
> to find the offset in an open file descriptor.

Coolio.

> We would love the opportunity to work with you on a demonstration for
> the high-performance networks that you mention.  Can you suggest an
> MPI code and the appropriate hardware testbed on which we could get an
> account and run?

Any MPI code should do -- even something as simple as a 
pass-the-message-around-in-a-ring app.  If you can checkpoint and restart it, 
that's a good start.

As for high-speed networks, any iWARP, IB, or Myrinet based network should do.  
iWARP+IB use the OpenFabrics verbs API; Myrinet networks use the MX API.  
AFAIK, neither of them export counters through /sys or /proc.

> We are aware of your plugin facilities and that in addition to BLCR,
> other checkpointers can also integrate with it.  And of course, we have the
> highest respect for BLCR.  We think that at this time, it is best to
> continue exploring both approaches.

One clarification -- our plugin interfaces were not designed specifically to 
support BLCR.  They were designed to support generic checkpointing facilities.  
Of course, we only had a few mind when they were designed, so it's possible 
that they might need to be extended if yours is different than at least the 
general model that we envisioned.  But all things are do-able.

I just mention this if you wish to pursue the inside-Open-MPI plugins approach. 
 Of course, staying outside of Open MPI is advantageous from a portability 
point of view.

> Although we haven't looked so closely at the plugin facility, we had
> assumed that it always interoperates with the OpenMPI checkpoint-restart
> service developed by Joshua Hursey (for which we also have very
> high respect).  

Ya, he's a smart guy.  But don't say it too loud or he'll get a big ego!  ;-)

> Our understanding was that the OpenMPI checkpoint-restart
> service arranges to halt all MPI messages, and then it calls BLCR
> for checkpointing on the local host.

The short answer is "yes".  The longer answer is that Josh designed a few 
different types of plugins -- some of quiescing a job, some for back-end 
checkpointer support, etc.  Hence, one is not directly dependent on the other.  
I believe that he has written some papers about this... ah, here's one of them 
(you may have seen this already?):

http://www.open-mpi.org/papers/hpdc-2009/

> DMTCP tries to do the job of both Josh's checkpoint-restart service
> and also BLCR, and it does it all transparently by working at the TCP/IP 
> socket
> level.  So, we simply run:
>   dmtcp_checkpoint mpirun ./hello_mpi
>   dmtcp_command --checkpoint
>   ./dmtcp_restart_script.sh
> (The file QUICK-START in DMTCP has a few more details.)
> Hence, we don't use the OpenMPI checkpoint-restart service or its plugin
> interface, since we're already able to do the distributed checkpointing
> directly.  If it were important, we could modify DMTCP to be called
> by the plugin, and to do checkpointing only on the local host.

I guess that's what I was asking about -- if you thought it would be worthwhile 
to do that: have your checkpoint service be called by Open MPI.  In this way, 
you'd use Open MPI's infrastructure to invoke your single-process-checkpointer 
underneath.

I'm guessing there are advantages and disadvantages to both.

> Also, as a side comment, DMTCP was already working with OpenMPI 1.2, but then
> later versions of OpenMPI started using more sophisticated system calls.
> By then, we were already working through different tasks, and it has
> taken us this long to come back to OpenMPI and properly support it again
> through our virtualized approach (properly handling the multiple
> ptys of OpenMPI, etc.).

Gotcha.  FWIW, we don't checkpoint the run-time system in Open MPI -- we only 
checkpoint the MPI processes.  Upon restart, we rebuild the run-time system and 
then launch the "restart" phase in the MPI processes.  In this way, we avoided 
a lot of special case code and took advantage of much of the infrastructure 
that we already had.

This could probably be construed as an advantage to working in the plugin 
system of Open MPI -- you'd pretty much be isolated from using more complex 
system calls, etc.  Indeed, that was one of Josh's primary design goals: 
separate the "quiesce" phase from the "checkpoint" phase because they really 
are two different things, and they don't necessarily have to be related.

That being said, a disadvantage of this approach is that that work (i.e., the 
plugin -- not the actual back-end checkpointer) then becomes specifically tied 
to Open MPI.  Wha