[OMPI devel] Q: Job scheduling of MPI applications? (in general)

2006-06-14 Thread Matthijs Richard Koot

Hi everyone,

I'm new to this list, and have a question regarding the how MPI jobs are 
scheduled by JMSs. If I understand correctly, to have decent 
management/scheduling of MPI jobs, there are requirements for both the MPI 
implementation and JMS implementation, for them to be 'integrated':

- the JMS needs to be 'parallel-aware', i.e. implement the PSCHED API;
- the MPI needs to be 'JMS-aware', i.e. call the PSCHED functions at the JMS.

My questions:
1. Is this correct?
2. Which question should is valid: "does OpenMPI support SGE?", or: "does SGE 
support OpenMPI"?
3. How do I know which JMSs (Torque/OpenPBS, SGE, LSF, ...) are compatible with 
which MPI implementations (OpenMPI, MPICH, MPICH-G2, ...), and vice versa? 
4. Is it true that the PSCHED API is the 'de facto' for such integration?

Don't feel obligated to answer all questions, I'm happy with ANY of them 
answered :-)

Friendly regards,
Matthijs Koot



Re: [OMPI devel] Q: Job scheduling of MPI applications? (in general)

2006-06-14 Thread Jeff Squyres (jsquyres)
> -Original Message-
> From: devel-boun...@open-mpi.org 
> [mailto:devel-boun...@open-mpi.org] On Behalf Of Matthijs Richard Koot
> Sent: Wednesday, June 14, 2006 1:04 AM
> To: de...@open-mpi.org
> Subject: [OMPI devel] Q: Job scheduling of MPI applications? 
> (in general)
> 
> I'm new to this list, and have a question regarding the how 
> MPI jobs are scheduled by JMSs. If I understand correctly, to 
> have decent management/scheduling of MPI jobs, there are 
> requirements for both the MPI implementation and JMS 
> implementation, for them to be 'integrated':
> 
> - the JMS needs to be 'parallel-aware', i.e. implement the PSCHED API;

It is probably more precise to say that the JMS ("Job Management
System"?) needs to provide a mechanism to start jobs on allocated nodes.
If it provides a parallel mechanism (e.g., a caller can invoke one
command to launch many processes), so much the better -- but if the
mechanism is serial, that's ok too.  All common resource managers
provide *some* way of launching jobs on allocated notes -- indeed, that
is one of their main purposes (to start / stop jobs).

The PSCHED API is one of several such interfaces.  A subset of the
PSCHED API is only in common use in the PBS line of resource managers
(Torque, PBS Pro, etc.).  I doubt that TM is the native interface that
the PBS flavors use to launch jobs (i.e., I doubt that PBS uses TM
internally for launching processes), but I have not dived into the
implementation enough to know.  Other resource managers have different
interfaces.

> - the MPI needs to be 'JMS-aware', i.e. call the PSCHED 
> functions at the JMS.

That's correct in spirit, but a little more precise would be to say that
the MPI needs to be aware of and properly utilize the mechanism that the
resource manager provides to start jobs.

> My questions:
> 1. Is this correct?
> 2. Which question should is valid: "does OpenMPI support 
> SGE?", or: "does SGE support OpenMPI"?

It's probably more correct to ask if Open MPI supports a given resource
manager.  

> 3. How do I know which JMSs (Torque/OpenPBS, SGE, LSF, ...) 
> are compatible with which MPI implementations (OpenMPI, 
> MPICH, MPICH-G2, ...), and vice versa? 

I can't speak for the other MPI implementations, but for Open MPI, you
can look here:

http://www.open-mpi.org/faq/?category=supported-systems#rte

> 4. Is it true that the PSCHED API is the 'de facto' for such 
> integration?

No.  It was an attempt to standardize such things, but it never really
caught on outside of the PBS family.

-- 
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems