Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Greg Watson (g.watson_at_[hidden])
Date: 2007-08-28 12:57:09


On Aug 27, 2007, at 10:04 PM, Jeff Squyres wrote:

> On Aug 27, 2007, at 2:50 PM, Greg Watson wrote:
>
>> Until now I haven't had to worry about the opal/orte thread model.
>> However, there are now people who would like to use ompi that has
>> been configured with --with-threads=posix and --with-enable-mpi-
>> threads. Can someone give me some pointers as to what I need to do in
>> order to make sure I don't violate any threading model?
>
> Note that this is *NOT* well tested. There is work going on right
> now to make the OMPI layer be able to support MPI_THREAD_MULTIPLE
> (support was designed in from the beginning, but we haven't ever done
> any kind of comprehensive testing/stressing of multi-thread support
> such that it is pretty much guaranteed not to work), but it is
> occurring on the trunk (i.e., what will eventually become v1.3) --
> not the v1.2 branch.
>
>> The interfaces I'm calling are:
>>
>> opal_event_loop()
>
> Brian or George will have to answer about that one...
>
>> opal_path_findv()
>
> This guy should be multi-thread safe (disclaimer: haven't tested it
> myself); it doesn't rely on any global state.
>
>> orte_init()
>> orte_ns.create_process_name()
>> orte_iof.iof_subscribe()
>> orte_iof.iof_unsubscribe()
>> orte_schema.get_job_segment_name()
>> orte_gpr.get()
>> orte_dss.get()
>> orte_rml.send_buffer()
>> orte_rmgr.spawn_job()
>> orte_pls.terminate_job()
>> orte_rds.query()
>> orte_smr.job_stage_gate_subscribe()
>> orte_rmgr.get_vpid_range()
>
> Note that all of ORTE is *NOT* thread safe, nor is it planned to be
> (it just seemed way more trouble than it was worth). You need to
> serialize access to it.
>

Does that mean just calling OPAL_THREAD_LOCK() and OPAL_THREAD_UNLOCK
() around each?

Greg