Initial commit

This commit is contained in:
Bassem Girgis
2018-12-20 17:34:07 -06:00
parent 7a2d899662
commit 81b4b9e273
34743 changed files with 5940233 additions and 0 deletions

View File

@@ -0,0 +1,551 @@
<HTML>
<HEAD>
<TITLE>Web pages for MPI</TITLE>
<!-- This file generated by createhtmlindex on -->
</HEAD>
<BODY BGCOLOR="FFFFFF">
<H1>Web pages for MPI</H1>
<H2>MPI Commands</H2>
<TABLE>
<TR><TD><A HREF="www1/mpicc.html">mpicc</A></TD>
<TD><A HREF="www1/mpiexec.html">mpiexec</A></TD>
<TD><A HREF="www1/mpifort.html">mpifort</A></TD>
</TR>
<TR><TD><A HREF="www1/mpicxx.html">mpicxx</A></TD>
<TD><A HREF="www1/mpif77.html">mpif77</A></TD>
<TD></TD>
</TR>
</TABLE>
<H2>MPI Routines and Constants</H2>
<TABLE>
<TR><TD><A HREF="www3/Constants.html">Constants</A></TD>
<TD><A HREF="www3/MPI_File_set_atomicity.html">MPI_File_set_atomicity</A></TD>
<TD><A HREF="www3/MPI_Rput.html">MPI_Rput</A></TD>
</TR>
<TR><TD><A HREF="www3/MPIX_Comm_agree.html">MPIX_Comm_agree</A></TD>
<TD><A HREF="www3/MPI_File_set_errhandler.html">MPI_File_set_errhandler</A></TD>
<TD><A HREF="www3/MPI_Rsend.html">MPI_Rsend</A></TD>
</TR>
<TR><TD><A HREF="www3/MPIX_Comm_failure_ack.html">MPIX_Comm_failure_ack</A></TD>
<TD><A HREF="www3/MPI_File_set_info.html">MPI_File_set_info</A></TD>
<TD><A HREF="www3/MPI_Rsend_init.html">MPI_Rsend_init</A></TD>
</TR>
<TR><TD><A HREF="www3/MPIX_Comm_failure_get_acked.html">MPIX_Comm_failure_get_acked</A></TD>
<TD><A HREF="www3/MPI_File_set_size.html">MPI_File_set_size</A></TD>
<TD><A HREF="www3/MPI_Scan.html">MPI_Scan</A></TD>
</TR>
<TR><TD><A HREF="www3/MPIX_Comm_revoke.html">MPIX_Comm_revoke</A></TD>
<TD><A HREF="www3/MPI_File_set_view.html">MPI_File_set_view</A></TD>
<TD><A HREF="www3/MPI_Scatter.html">MPI_Scatter</A></TD>
</TR>
<TR><TD><A HREF="www3/MPIX_Comm_shrink.html">MPIX_Comm_shrink</A></TD>
<TD><A HREF="www3/MPI_File_sync.html">MPI_File_sync</A></TD>
<TD><A HREF="www3/MPI_Scatterv.html">MPI_Scatterv</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Abort.html">MPI_Abort</A></TD>
<TD><A HREF="www3/MPI_File_write.html">MPI_File_write</A></TD>
<TD><A HREF="www3/MPI_Send.html">MPI_Send</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Accumulate.html">MPI_Accumulate</A></TD>
<TD><A HREF="www3/MPI_File_write_all.html">MPI_File_write_all</A></TD>
<TD><A HREF="www3/MPI_Send_init.html">MPI_Send_init</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Add_error_class.html">MPI_Add_error_class</A></TD>
<TD><A HREF="www3/MPI_File_write_all_begin.html">MPI_File_write_all_begin</A></TD>
<TD><A HREF="www3/MPI_Sendrecv.html">MPI_Sendrecv</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Add_error_code.html">MPI_Add_error_code</A></TD>
<TD><A HREF="www3/MPI_File_write_all_end.html">MPI_File_write_all_end</A></TD>
<TD><A HREF="www3/MPI_Sendrecv_replace.html">MPI_Sendrecv_replace</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Add_error_string.html">MPI_Add_error_string</A></TD>
<TD><A HREF="www3/MPI_File_write_at.html">MPI_File_write_at</A></TD>
<TD><A HREF="www3/MPI_Ssend.html">MPI_Ssend</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Address.html">MPI_Address</A></TD>
<TD><A HREF="www3/MPI_File_write_at_all.html">MPI_File_write_at_all</A></TD>
<TD><A HREF="www3/MPI_Ssend_init.html">MPI_Ssend_init</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Aint_add.html">MPI_Aint_add</A></TD>
<TD><A HREF="www3/MPI_File_write_at_all_begin.html">MPI_File_write_at_all_begin</A></TD>
<TD><A HREF="www3/MPI_Start.html">MPI_Start</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Aint_diff.html">MPI_Aint_diff</A></TD>
<TD><A HREF="www3/MPI_File_write_at_all_end.html">MPI_File_write_at_all_end</A></TD>
<TD><A HREF="www3/MPI_Startall.html">MPI_Startall</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Allgather.html">MPI_Allgather</A></TD>
<TD><A HREF="www3/MPI_File_write_ordered.html">MPI_File_write_ordered</A></TD>
<TD><A HREF="www3/MPI_Status_set_cancelled.html">MPI_Status_set_cancelled</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Allgatherv.html">MPI_Allgatherv</A></TD>
<TD><A HREF="www3/MPI_File_write_ordered_begin.html">MPI_File_write_ordered_begin</A></TD>
<TD><A HREF="www3/MPI_Status_set_elements.html">MPI_Status_set_elements</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Alloc_mem.html">MPI_Alloc_mem</A></TD>
<TD><A HREF="www3/MPI_File_write_ordered_end.html">MPI_File_write_ordered_end</A></TD>
<TD><A HREF="www3/MPI_Status_set_elements_x.html">MPI_Status_set_elements_x</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Allreduce.html">MPI_Allreduce</A></TD>
<TD><A HREF="www3/MPI_File_write_shared.html">MPI_File_write_shared</A></TD>
<TD><A HREF="www3/MPI_T_category_changed.html">MPI_T_category_changed</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Alltoall.html">MPI_Alltoall</A></TD>
<TD><A HREF="www3/MPI_Finalize.html">MPI_Finalize</A></TD>
<TD><A HREF="www3/MPI_T_category_get_categories.html">MPI_T_category_get_categories</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Alltoallv.html">MPI_Alltoallv</A></TD>
<TD><A HREF="www3/MPI_Finalized.html">MPI_Finalized</A></TD>
<TD><A HREF="www3/MPI_T_category_get_cvars.html">MPI_T_category_get_cvars</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Alltoallw.html">MPI_Alltoallw</A></TD>
<TD><A HREF="www3/MPI_Free_mem.html">MPI_Free_mem</A></TD>
<TD><A HREF="www3/MPI_T_category_get_info.html">MPI_T_category_get_info</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Attr_delete.html">MPI_Attr_delete</A></TD>
<TD><A HREF="www3/MPI_Gather.html">MPI_Gather</A></TD>
<TD><A HREF="www3/MPI_T_category_get_num.html">MPI_T_category_get_num</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Attr_get.html">MPI_Attr_get</A></TD>
<TD><A HREF="www3/MPI_Gatherv.html">MPI_Gatherv</A></TD>
<TD><A HREF="www3/MPI_T_category_get_pvars.html">MPI_T_category_get_pvars</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Attr_put.html">MPI_Attr_put</A></TD>
<TD><A HREF="www3/MPI_Get.html">MPI_Get</A></TD>
<TD><A HREF="www3/MPI_T_cvar_get_info.html">MPI_T_cvar_get_info</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Barrier.html">MPI_Barrier</A></TD>
<TD><A HREF="www3/MPI_Get_accumulate.html">MPI_Get_accumulate</A></TD>
<TD><A HREF="www3/MPI_T_cvar_get_num.html">MPI_T_cvar_get_num</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Bcast.html">MPI_Bcast</A></TD>
<TD><A HREF="www3/MPI_Get_address.html">MPI_Get_address</A></TD>
<TD><A HREF="www3/MPI_T_cvar_handle_alloc.html">MPI_T_cvar_handle_alloc</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Bsend.html">MPI_Bsend</A></TD>
<TD><A HREF="www3/MPI_Get_count.html">MPI_Get_count</A></TD>
<TD><A HREF="www3/MPI_T_cvar_handle_free.html">MPI_T_cvar_handle_free</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Bsend_init.html">MPI_Bsend_init</A></TD>
<TD><A HREF="www3/MPI_Get_elements.html">MPI_Get_elements</A></TD>
<TD><A HREF="www3/MPI_T_cvar_read.html">MPI_T_cvar_read</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Buffer_attach.html">MPI_Buffer_attach</A></TD>
<TD><A HREF="www3/MPI_Get_elements_x.html">MPI_Get_elements_x</A></TD>
<TD><A HREF="www3/MPI_T_cvar_write.html">MPI_T_cvar_write</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Buffer_detach.html">MPI_Buffer_detach</A></TD>
<TD><A HREF="www3/MPI_Get_library_version.html">MPI_Get_library_version</A></TD>
<TD><A HREF="www3/MPI_T_enum_get_info.html">MPI_T_enum_get_info</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cancel.html">MPI_Cancel</A></TD>
<TD><A HREF="www3/MPI_Get_processor_name.html">MPI_Get_processor_name</A></TD>
<TD><A HREF="www3/MPI_T_enum_get_item.html">MPI_T_enum_get_item</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_coords.html">MPI_Cart_coords</A></TD>
<TD><A HREF="www3/MPI_Get_version.html">MPI_Get_version</A></TD>
<TD><A HREF="www3/MPI_T_finalize.html">MPI_T_finalize</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_create.html">MPI_Cart_create</A></TD>
<TD><A HREF="www3/MPI_Graph_create.html">MPI_Graph_create</A></TD>
<TD><A HREF="www3/MPI_T_init_thread.html">MPI_T_init_thread</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_get.html">MPI_Cart_get</A></TD>
<TD><A HREF="www3/MPI_Graph_get.html">MPI_Graph_get</A></TD>
<TD><A HREF="www3/MPI_T_pvar_get_info.html">MPI_T_pvar_get_info</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_map.html">MPI_Cart_map</A></TD>
<TD><A HREF="www3/MPI_Graph_map.html">MPI_Graph_map</A></TD>
<TD><A HREF="www3/MPI_T_pvar_get_num.html">MPI_T_pvar_get_num</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_rank.html">MPI_Cart_rank</A></TD>
<TD><A HREF="www3/MPI_Graph_neighbors.html">MPI_Graph_neighbors</A></TD>
<TD><A HREF="www3/MPI_T_pvar_handle_alloc.html">MPI_T_pvar_handle_alloc</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_shift.html">MPI_Cart_shift</A></TD>
<TD><A HREF="www3/MPI_Graph_neighbors_count.html">MPI_Graph_neighbors_count</A></TD>
<TD><A HREF="www3/MPI_T_pvar_handle_free.html">MPI_T_pvar_handle_free</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cart_sub.html">MPI_Cart_sub</A></TD>
<TD><A HREF="www3/MPI_Graphdims_get.html">MPI_Graphdims_get</A></TD>
<TD><A HREF="www3/MPI_T_pvar_read.html">MPI_T_pvar_read</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Cartdim_get.html">MPI_Cartdim_get</A></TD>
<TD><A HREF="www3/MPI_Grequest_complete.html">MPI_Grequest_complete</A></TD>
<TD><A HREF="www3/MPI_T_pvar_readreset.html">MPI_T_pvar_readreset</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Close_port.html">MPI_Close_port</A></TD>
<TD><A HREF="www3/MPI_Grequest_start.html">MPI_Grequest_start</A></TD>
<TD><A HREF="www3/MPI_T_pvar_reset.html">MPI_T_pvar_reset</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_accept.html">MPI_Comm_accept</A></TD>
<TD><A HREF="www3/MPI_Group_compare.html">MPI_Group_compare</A></TD>
<TD><A HREF="www3/MPI_T_pvar_session_create.html">MPI_T_pvar_session_create</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_call_errhandler.html">MPI_Comm_call_errhandler</A></TD>
<TD><A HREF="www3/MPI_Group_difference.html">MPI_Group_difference</A></TD>
<TD><A HREF="www3/MPI_T_pvar_session_free.html">MPI_T_pvar_session_free</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_compare.html">MPI_Comm_compare</A></TD>
<TD><A HREF="www3/MPI_Group_excl.html">MPI_Group_excl</A></TD>
<TD><A HREF="www3/MPI_T_pvar_start.html">MPI_T_pvar_start</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_connect.html">MPI_Comm_connect</A></TD>
<TD><A HREF="www3/MPI_Group_free.html">MPI_Group_free</A></TD>
<TD><A HREF="www3/MPI_T_pvar_stop.html">MPI_T_pvar_stop</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_create.html">MPI_Comm_create</A></TD>
<TD><A HREF="www3/MPI_Group_incl.html">MPI_Group_incl</A></TD>
<TD><A HREF="www3/MPI_T_pvar_write.html">MPI_T_pvar_write</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_create_errhandler.html">MPI_Comm_create_errhandler</A></TD>
<TD><A HREF="www3/MPI_Group_intersection.html">MPI_Group_intersection</A></TD>
<TD><A HREF="www3/MPI_Test.html">MPI_Test</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_create_group.html">MPI_Comm_create_group</A></TD>
<TD><A HREF="www3/MPI_Group_range_excl.html">MPI_Group_range_excl</A></TD>
<TD><A HREF="www3/MPI_Test_cancelled.html">MPI_Test_cancelled</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_create_keyval.html">MPI_Comm_create_keyval</A></TD>
<TD><A HREF="www3/MPI_Group_range_incl.html">MPI_Group_range_incl</A></TD>
<TD><A HREF="www3/MPI_Testall.html">MPI_Testall</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_delete_attr.html">MPI_Comm_delete_attr</A></TD>
<TD><A HREF="www3/MPI_Group_rank.html">MPI_Group_rank</A></TD>
<TD><A HREF="www3/MPI_Testany.html">MPI_Testany</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_disconnect.html">MPI_Comm_disconnect</A></TD>
<TD><A HREF="www3/MPI_Group_size.html">MPI_Group_size</A></TD>
<TD><A HREF="www3/MPI_Testsome.html">MPI_Testsome</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_dup.html">MPI_Comm_dup</A></TD>
<TD><A HREF="www3/MPI_Group_translate_ranks.html">MPI_Group_translate_ranks</A></TD>
<TD><A HREF="www3/MPI_Topo_test.html">MPI_Topo_test</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_dup_with_info.html">MPI_Comm_dup_with_info</A></TD>
<TD><A HREF="www3/MPI_Group_union.html">MPI_Group_union</A></TD>
<TD><A HREF="www3/MPI_Type_commit.html">MPI_Type_commit</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_free.html">MPI_Comm_free</A></TD>
<TD><A HREF="www3/MPI_Iallgather.html">MPI_Iallgather</A></TD>
<TD><A HREF="www3/MPI_Type_contiguous.html">MPI_Type_contiguous</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_free_keyval.html">MPI_Comm_free_keyval</A></TD>
<TD><A HREF="www3/MPI_Iallgatherv.html">MPI_Iallgatherv</A></TD>
<TD><A HREF="www3/MPI_Type_create_darray.html">MPI_Type_create_darray</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_get_attr.html">MPI_Comm_get_attr</A></TD>
<TD><A HREF="www3/MPI_Iallreduce.html">MPI_Iallreduce</A></TD>
<TD><A HREF="www3/MPI_Type_create_hindexed.html">MPI_Type_create_hindexed</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_get_errhandler.html">MPI_Comm_get_errhandler</A></TD>
<TD><A HREF="www3/MPI_Ialltoall.html">MPI_Ialltoall</A></TD>
<TD><A HREF="www3/MPI_Type_create_hindexed_block.html">MPI_Type_create_hindexed_block</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_get_info.html">MPI_Comm_get_info</A></TD>
<TD><A HREF="www3/MPI_Ialltoallv.html">MPI_Ialltoallv</A></TD>
<TD><A HREF="www3/MPI_Type_create_hvector.html">MPI_Type_create_hvector</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_get_name.html">MPI_Comm_get_name</A></TD>
<TD><A HREF="www3/MPI_Ialltoallw.html">MPI_Ialltoallw</A></TD>
<TD><A HREF="www3/MPI_Type_create_indexed_block.html">MPI_Type_create_indexed_block</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_get_parent.html">MPI_Comm_get_parent</A></TD>
<TD><A HREF="www3/MPI_Ibarrier.html">MPI_Ibarrier</A></TD>
<TD><A HREF="www3/MPI_Type_create_keyval.html">MPI_Type_create_keyval</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_group.html">MPI_Comm_group</A></TD>
<TD><A HREF="www3/MPI_Ibcast.html">MPI_Ibcast</A></TD>
<TD><A HREF="www3/MPI_Type_create_resized.html">MPI_Type_create_resized</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_idup.html">MPI_Comm_idup</A></TD>
<TD><A HREF="www3/MPI_Ibsend.html">MPI_Ibsend</A></TD>
<TD><A HREF="www3/MPI_Type_create_struct.html">MPI_Type_create_struct</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_join.html">MPI_Comm_join</A></TD>
<TD><A HREF="www3/MPI_Iexscan.html">MPI_Iexscan</A></TD>
<TD><A HREF="www3/MPI_Type_create_subarray.html">MPI_Type_create_subarray</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_rank.html">MPI_Comm_rank</A></TD>
<TD><A HREF="www3/MPI_Igather.html">MPI_Igather</A></TD>
<TD><A HREF="www3/MPI_Type_delete_attr.html">MPI_Type_delete_attr</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_remote_group.html">MPI_Comm_remote_group</A></TD>
<TD><A HREF="www3/MPI_Igatherv.html">MPI_Igatherv</A></TD>
<TD><A HREF="www3/MPI_Type_dup.html">MPI_Type_dup</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_remote_size.html">MPI_Comm_remote_size</A></TD>
<TD><A HREF="www3/MPI_Improbe.html">MPI_Improbe</A></TD>
<TD><A HREF="www3/MPI_Type_extent.html">MPI_Type_extent</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_set_attr.html">MPI_Comm_set_attr</A></TD>
<TD><A HREF="www3/MPI_Imrecv.html">MPI_Imrecv</A></TD>
<TD><A HREF="www3/MPI_Type_free.html">MPI_Type_free</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_set_errhandler.html">MPI_Comm_set_errhandler</A></TD>
<TD><A HREF="www3/MPI_Ineighbor_allgather.html">MPI_Ineighbor_allgather</A></TD>
<TD><A HREF="www3/MPI_Type_free_keyval.html">MPI_Type_free_keyval</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_set_info.html">MPI_Comm_set_info</A></TD>
<TD><A HREF="www3/MPI_Ineighbor_allgatherv.html">MPI_Ineighbor_allgatherv</A></TD>
<TD><A HREF="www3/MPI_Type_get_attr.html">MPI_Type_get_attr</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_set_name.html">MPI_Comm_set_name</A></TD>
<TD><A HREF="www3/MPI_Ineighbor_alltoall.html">MPI_Ineighbor_alltoall</A></TD>
<TD><A HREF="www3/MPI_Type_get_contents.html">MPI_Type_get_contents</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_size.html">MPI_Comm_size</A></TD>
<TD><A HREF="www3/MPI_Ineighbor_alltoallv.html">MPI_Ineighbor_alltoallv</A></TD>
<TD><A HREF="www3/MPI_Type_get_envelope.html">MPI_Type_get_envelope</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_spawn.html">MPI_Comm_spawn</A></TD>
<TD><A HREF="www3/MPI_Ineighbor_alltoallw.html">MPI_Ineighbor_alltoallw</A></TD>
<TD><A HREF="www3/MPI_Type_get_extent.html">MPI_Type_get_extent</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_spawn_multiple.html">MPI_Comm_spawn_multiple</A></TD>
<TD><A HREF="www3/MPI_Info_create.html">MPI_Info_create</A></TD>
<TD><A HREF="www3/MPI_Type_get_extent_x.html">MPI_Type_get_extent_x</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_split.html">MPI_Comm_split</A></TD>
<TD><A HREF="www3/MPI_Info_delete.html">MPI_Info_delete</A></TD>
<TD><A HREF="www3/MPI_Type_get_name.html">MPI_Type_get_name</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_split_type.html">MPI_Comm_split_type</A></TD>
<TD><A HREF="www3/MPI_Info_dup.html">MPI_Info_dup</A></TD>
<TD><A HREF="www3/MPI_Type_get_true_extent.html">MPI_Type_get_true_extent</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Comm_test_inter.html">MPI_Comm_test_inter</A></TD>
<TD><A HREF="www3/MPI_Info_free.html">MPI_Info_free</A></TD>
<TD><A HREF="www3/MPI_Type_get_true_extent_x.html">MPI_Type_get_true_extent_x</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Compare_and_swap.html">MPI_Compare_and_swap</A></TD>
<TD><A HREF="www3/MPI_Info_get.html">MPI_Info_get</A></TD>
<TD><A HREF="www3/MPI_Type_hindexed.html">MPI_Type_hindexed</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Dims_create.html">MPI_Dims_create</A></TD>
<TD><A HREF="www3/MPI_Info_get_nkeys.html">MPI_Info_get_nkeys</A></TD>
<TD><A HREF="www3/MPI_Type_hvector.html">MPI_Type_hvector</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Dist_graph_create.html">MPI_Dist_graph_create</A></TD>
<TD><A HREF="www3/MPI_Info_get_nthkey.html">MPI_Info_get_nthkey</A></TD>
<TD><A HREF="www3/MPI_Type_indexed.html">MPI_Type_indexed</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Dist_graph_create_adjacent.html">MPI_Dist_graph_create_adjacent</A></TD>
<TD><A HREF="www3/MPI_Info_get_valuelen.html">MPI_Info_get_valuelen</A></TD>
<TD><A HREF="www3/MPI_Type_lb.html">MPI_Type_lb</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Dist_graph_neighbors.html">MPI_Dist_graph_neighbors</A></TD>
<TD><A HREF="www3/MPI_Info_set.html">MPI_Info_set</A></TD>
<TD><A HREF="www3/MPI_Type_match_size.html">MPI_Type_match_size</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Dist_graph_neighbors_count.html">MPI_Dist_graph_neighbors_count</A></TD>
<TD><A HREF="www3/MPI_Init.html">MPI_Init</A></TD>
<TD><A HREF="www3/MPI_Type_set_attr.html">MPI_Type_set_attr</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Errhandler_create.html">MPI_Errhandler_create</A></TD>
<TD><A HREF="www3/MPI_Init_thread.html">MPI_Init_thread</A></TD>
<TD><A HREF="www3/MPI_Type_set_name.html">MPI_Type_set_name</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Errhandler_free.html">MPI_Errhandler_free</A></TD>
<TD><A HREF="www3/MPI_Initialized.html">MPI_Initialized</A></TD>
<TD><A HREF="www3/MPI_Type_size.html">MPI_Type_size</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Errhandler_get.html">MPI_Errhandler_get</A></TD>
<TD><A HREF="www3/MPI_Intercomm_create.html">MPI_Intercomm_create</A></TD>
<TD><A HREF="www3/MPI_Type_size_x.html">MPI_Type_size_x</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Errhandler_set.html">MPI_Errhandler_set</A></TD>
<TD><A HREF="www3/MPI_Intercomm_merge.html">MPI_Intercomm_merge</A></TD>
<TD><A HREF="www3/MPI_Type_struct.html">MPI_Type_struct</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Error_class.html">MPI_Error_class</A></TD>
<TD><A HREF="www3/MPI_Iprobe.html">MPI_Iprobe</A></TD>
<TD><A HREF="www3/MPI_Type_ub.html">MPI_Type_ub</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Error_string.html">MPI_Error_string</A></TD>
<TD><A HREF="www3/MPI_Irecv.html">MPI_Irecv</A></TD>
<TD><A HREF="www3/MPI_Type_vector.html">MPI_Type_vector</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Exscan.html">MPI_Exscan</A></TD>
<TD><A HREF="www3/MPI_Ireduce.html">MPI_Ireduce</A></TD>
<TD><A HREF="www3/MPI_Unpack.html">MPI_Unpack</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_Fetch_and_op.html">MPI_Fetch_and_op</A></TD>
<TD><A HREF="www3/MPI_Ireduce_scatter.html">MPI_Ireduce_scatter</A></TD>
<TD><A HREF="www3/MPI_Unpack_external.html">MPI_Unpack_external</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_c2f.html">MPI_File_c2f</A></TD>
<TD><A HREF="www3/MPI_Ireduce_scatter_block.html">MPI_Ireduce_scatter_block</A></TD>
<TD><A HREF="www3/MPI_Unpublish_name.html">MPI_Unpublish_name</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_call_errhandler.html">MPI_File_call_errhandler</A></TD>
<TD><A HREF="www3/MPI_Irsend.html">MPI_Irsend</A></TD>
<TD><A HREF="www3/MPI_Wait.html">MPI_Wait</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_close.html">MPI_File_close</A></TD>
<TD><A HREF="www3/MPI_Is_thread_main.html">MPI_Is_thread_main</A></TD>
<TD><A HREF="www3/MPI_Waitall.html">MPI_Waitall</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_create_errhandler.html">MPI_File_create_errhandler</A></TD>
<TD><A HREF="www3/MPI_Iscan.html">MPI_Iscan</A></TD>
<TD><A HREF="www3/MPI_Waitany.html">MPI_Waitany</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_delete.html">MPI_File_delete</A></TD>
<TD><A HREF="www3/MPI_Iscatter.html">MPI_Iscatter</A></TD>
<TD><A HREF="www3/MPI_Waitsome.html">MPI_Waitsome</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_f2c.html">MPI_File_f2c</A></TD>
<TD><A HREF="www3/MPI_Iscatterv.html">MPI_Iscatterv</A></TD>
<TD><A HREF="www3/MPI_Win_allocate.html">MPI_Win_allocate</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_amode.html">MPI_File_get_amode</A></TD>
<TD><A HREF="www3/MPI_Isend.html">MPI_Isend</A></TD>
<TD><A HREF="www3/MPI_Win_allocate_shared.html">MPI_Win_allocate_shared</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_atomicity.html">MPI_File_get_atomicity</A></TD>
<TD><A HREF="www3/MPI_Issend.html">MPI_Issend</A></TD>
<TD><A HREF="www3/MPI_Win_attach.html">MPI_Win_attach</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_byte_offset.html">MPI_File_get_byte_offset</A></TD>
<TD><A HREF="www3/MPI_Keyval_create.html">MPI_Keyval_create</A></TD>
<TD><A HREF="www3/MPI_Win_call_errhandler.html">MPI_Win_call_errhandler</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_errhandler.html">MPI_File_get_errhandler</A></TD>
<TD><A HREF="www3/MPI_Keyval_free.html">MPI_Keyval_free</A></TD>
<TD><A HREF="www3/MPI_Win_complete.html">MPI_Win_complete</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_group.html">MPI_File_get_group</A></TD>
<TD><A HREF="www3/MPI_Lookup_name.html">MPI_Lookup_name</A></TD>
<TD><A HREF="www3/MPI_Win_create.html">MPI_Win_create</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_info.html">MPI_File_get_info</A></TD>
<TD><A HREF="www3/MPI_Mprobe.html">MPI_Mprobe</A></TD>
<TD><A HREF="www3/MPI_Win_create_dynamic.html">MPI_Win_create_dynamic</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_position.html">MPI_File_get_position</A></TD>
<TD><A HREF="www3/MPI_Mrecv.html">MPI_Mrecv</A></TD>
<TD><A HREF="www3/MPI_Win_create_errhandler.html">MPI_Win_create_errhandler</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_position_shared.html">MPI_File_get_position_shared</A></TD>
<TD><A HREF="www3/MPI_Neighbor_allgather.html">MPI_Neighbor_allgather</A></TD>
<TD><A HREF="www3/MPI_Win_create_keyval.html">MPI_Win_create_keyval</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_size.html">MPI_File_get_size</A></TD>
<TD><A HREF="www3/MPI_Neighbor_allgatherv.html">MPI_Neighbor_allgatherv</A></TD>
<TD><A HREF="www3/MPI_Win_delete_attr.html">MPI_Win_delete_attr</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_type_extent.html">MPI_File_get_type_extent</A></TD>
<TD><A HREF="www3/MPI_Neighbor_alltoall.html">MPI_Neighbor_alltoall</A></TD>
<TD><A HREF="www3/MPI_Win_detach.html">MPI_Win_detach</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_get_view.html">MPI_File_get_view</A></TD>
<TD><A HREF="www3/MPI_Neighbor_alltoallv.html">MPI_Neighbor_alltoallv</A></TD>
<TD><A HREF="www3/MPI_Win_fence.html">MPI_Win_fence</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iread.html">MPI_File_iread</A></TD>
<TD><A HREF="www3/MPI_Neighbor_alltoallw.html">MPI_Neighbor_alltoallw</A></TD>
<TD><A HREF="www3/MPI_Win_flush.html">MPI_Win_flush</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iread_all.html">MPI_File_iread_all</A></TD>
<TD><A HREF="www3/MPI_Op_commute.html">MPI_Op_commute</A></TD>
<TD><A HREF="www3/MPI_Win_flush_all.html">MPI_Win_flush_all</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iread_at.html">MPI_File_iread_at</A></TD>
<TD><A HREF="www3/MPI_Op_create.html">MPI_Op_create</A></TD>
<TD><A HREF="www3/MPI_Win_flush_local.html">MPI_Win_flush_local</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iread_at_all.html">MPI_File_iread_at_all</A></TD>
<TD><A HREF="www3/MPI_Op_free.html">MPI_Op_free</A></TD>
<TD><A HREF="www3/MPI_Win_flush_local_all.html">MPI_Win_flush_local_all</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iread_shared.html">MPI_File_iread_shared</A></TD>
<TD><A HREF="www3/MPI_Open_port.html">MPI_Open_port</A></TD>
<TD><A HREF="www3/MPI_Win_free.html">MPI_Win_free</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iwrite.html">MPI_File_iwrite</A></TD>
<TD><A HREF="www3/MPI_Pack.html">MPI_Pack</A></TD>
<TD><A HREF="www3/MPI_Win_free_keyval.html">MPI_Win_free_keyval</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iwrite_all.html">MPI_File_iwrite_all</A></TD>
<TD><A HREF="www3/MPI_Pack_external.html">MPI_Pack_external</A></TD>
<TD><A HREF="www3/MPI_Win_get_attr.html">MPI_Win_get_attr</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iwrite_at.html">MPI_File_iwrite_at</A></TD>
<TD><A HREF="www3/MPI_Pack_external_size.html">MPI_Pack_external_size</A></TD>
<TD><A HREF="www3/MPI_Win_get_errhandler.html">MPI_Win_get_errhandler</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iwrite_at_all.html">MPI_File_iwrite_at_all</A></TD>
<TD><A HREF="www3/MPI_Pack_size.html">MPI_Pack_size</A></TD>
<TD><A HREF="www3/MPI_Win_get_group.html">MPI_Win_get_group</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_iwrite_shared.html">MPI_File_iwrite_shared</A></TD>
<TD><A HREF="www3/MPI_Pcontrol.html">MPI_Pcontrol</A></TD>
<TD><A HREF="www3/MPI_Win_get_info.html">MPI_Win_get_info</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_open.html">MPI_File_open</A></TD>
<TD><A HREF="www3/MPI_Probe.html">MPI_Probe</A></TD>
<TD><A HREF="www3/MPI_Win_get_name.html">MPI_Win_get_name</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_preallocate.html">MPI_File_preallocate</A></TD>
<TD><A HREF="www3/MPI_Publish_name.html">MPI_Publish_name</A></TD>
<TD><A HREF="www3/MPI_Win_lock.html">MPI_Win_lock</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read.html">MPI_File_read</A></TD>
<TD><A HREF="www3/MPI_Put.html">MPI_Put</A></TD>
<TD><A HREF="www3/MPI_Win_lock_all.html">MPI_Win_lock_all</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_all.html">MPI_File_read_all</A></TD>
<TD><A HREF="www3/MPI_Query_thread.html">MPI_Query_thread</A></TD>
<TD><A HREF="www3/MPI_Win_post.html">MPI_Win_post</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_all_begin.html">MPI_File_read_all_begin</A></TD>
<TD><A HREF="www3/MPI_Raccumulate.html">MPI_Raccumulate</A></TD>
<TD><A HREF="www3/MPI_Win_set_attr.html">MPI_Win_set_attr</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_all_end.html">MPI_File_read_all_end</A></TD>
<TD><A HREF="www3/MPI_Recv.html">MPI_Recv</A></TD>
<TD><A HREF="www3/MPI_Win_set_errhandler.html">MPI_Win_set_errhandler</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_at.html">MPI_File_read_at</A></TD>
<TD><A HREF="www3/MPI_Recv_init.html">MPI_Recv_init</A></TD>
<TD><A HREF="www3/MPI_Win_set_info.html">MPI_Win_set_info</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_at_all.html">MPI_File_read_at_all</A></TD>
<TD><A HREF="www3/MPI_Reduce.html">MPI_Reduce</A></TD>
<TD><A HREF="www3/MPI_Win_set_name.html">MPI_Win_set_name</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_at_all_begin.html">MPI_File_read_at_all_begin</A></TD>
<TD><A HREF="www3/MPI_Reduce_local.html">MPI_Reduce_local</A></TD>
<TD><A HREF="www3/MPI_Win_shared_query.html">MPI_Win_shared_query</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_at_all_end.html">MPI_File_read_at_all_end</A></TD>
<TD><A HREF="www3/MPI_Reduce_scatter.html">MPI_Reduce_scatter</A></TD>
<TD><A HREF="www3/MPI_Win_start.html">MPI_Win_start</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_ordered.html">MPI_File_read_ordered</A></TD>
<TD><A HREF="www3/MPI_Reduce_scatter_block.html">MPI_Reduce_scatter_block</A></TD>
<TD><A HREF="www3/MPI_Win_sync.html">MPI_Win_sync</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_ordered_begin.html">MPI_File_read_ordered_begin</A></TD>
<TD><A HREF="www3/MPI_Register_datarep.html">MPI_Register_datarep</A></TD>
<TD><A HREF="www3/MPI_Win_test.html">MPI_Win_test</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_ordered_end.html">MPI_File_read_ordered_end</A></TD>
<TD><A HREF="www3/MPI_Request_free.html">MPI_Request_free</A></TD>
<TD><A HREF="www3/MPI_Win_unlock.html">MPI_Win_unlock</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_read_shared.html">MPI_File_read_shared</A></TD>
<TD><A HREF="www3/MPI_Request_get_status.html">MPI_Request_get_status</A></TD>
<TD><A HREF="www3/MPI_Win_unlock_all.html">MPI_Win_unlock_all</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_seek.html">MPI_File_seek</A></TD>
<TD><A HREF="www3/MPI_Rget.html">MPI_Rget</A></TD>
<TD><A HREF="www3/MPI_Win_wait.html">MPI_Win_wait</A></TD>
</TR>
<TR><TD><A HREF="www3/MPI_File_seek_shared.html">MPI_File_seek_shared</A></TD>
<TD><A HREF="www3/MPI_Rget_accumulate.html">MPI_Rget_accumulate</A></TD>
<TD><A HREF="www3/MPI_Wtick.html">MPI_Wtick</A></TD>
</TR>
</TABLE>
</BODY>
</HTML>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,19 @@
<HTML>
<HEAD>
<TITLE>Manpages for MPICH</TITLE>
<!-- This file generated by createhtmlindex on -->
</HEAD>
<BODY BGCOLOR="FFFFFF">
<H1>Manpages for MPICH</H1>
<TABLE>
<TR><TD><A HREF="mpicc.html">mpicc</A></TD>
<TD><A HREF="mpiexec.html">mpiexec</A></TD>
<TD><A HREF="mpifort.html">mpifort</A></TD>
</TR>
<TR><TD><A HREF="mpicxx.html">mpicxx</A></TD>
<TD><A HREF="mpif77.html">mpif77</A></TD>
<TD></TD>
</TR>
</TABLE>
</BODY>
</HTML>

View File

@@ -0,0 +1,134 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpicc</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpicc"><H1>mpicc</H1></A>
Compiles and links MPI programs written in C
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
C. It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command, particularly when linking programs,
as it provides the necessary libraries.
<P>
<H2>Command line arguments</H2>
<DL>
<DT><B>-show </B><DD>Show the commands that would be used without
running them
<DT><B>-help </B><DD>Give short help
<DT><B>-cc=name </B><DD>Use compiler <tt>name</tt> instead of the default choice. Use
this only if the compiler is compatible with the MPICH
library (see below)
<DT><B>-config=name </B><DD>Load a configuration file for a particular compiler.
This allows a single <tt>mpicc</tt> command to be used with
multiple compilers.
<DT><B>-compile_info </B><DD>Show the steps for compiling a program. This option
can be used to see what options and include paths are
used by mpicc.
<DT><B>-link_info </B><DD>Show the steps for linking a program. This option
can be used to see what options and libraries are used by
mpicc.
<DT><B>-profile=name </B><DD>Use the MPI profiling given by name. See below for
details
<DT><B>-echo </B><DD>Show exactly what this program is doing.
This option should normally not be used.
<DT><B>others </B><DD>are passed to the compiler or linker. For example, <tt>\-c
</tt>causes files to be compiled, <tt>\-g</tt> selects compilation with
debugging on most systems, and <tt>\-o name</tt> causes linking
with the output executable given the name <tt>name</tt>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variable <tt>MPICH_CC</tt> may be used
to select different C compiler and linker. Note that since
MPICH is built with a particular C and Fortran compiler, changing the
compilers used can cause problems. Use this only if you could intermix
code compiled with the different compilers.
<P>
The environment variable <tt>MPICC_PROFILE</tt> specifies a profile library
and has the same effect as if <tt>\-profile=$MPICC_PROFILE</tt> were used as
an argument to <tt>mpicc</tt>. See the discussion of <tt>\-profile</tt> below for more
details.
<P>
<H2>Compatible Compilers</H2>
The MPI library may be used with any compiler that uses the same
lengths for basic data objects (such as <tt>long double</tt>) and that
uses compatible run-time libraries. On many systems, the various
compilers are compatible and may be used interchangably. There are
exceptions; if you use the <tt>MPICH_CC</tt> environment variable or the
<tt>\-cc=name</tt> command-line argument to override the choice of compiler
and encounter problems, try reconfiguring MPICH with the new compiler
and installing MPICH in a separate location. See the installation manual
for more details.
<P>
<H2>Examples</H2>
To compile a single file <tt>foo.c</tt>, use
<PRE>
mpicc -c foo.c
</PRE>
<P>
To link the output and make an executable, use
<PRE>
mpicc -o foo foo.o
</PRE>
Combining compilation and linking in a single command
<PRE>
mpicc -o foo foo.c
</PRE>
is a convenient way to build simple programs.
<P>
<H2>Selecting a Profiling Library</H2>
The <tt>\-profile=name</tt> argument allows you to specify an MPI profiling
library to be used. <tt>name</tt> can have two forms:
<P>
<br>A library in the same directory as the MPI library
<br>The name of a profile configuration file
<br>
<P>
If <tt>name</tt> is a library, then this library is included before the MPI
library. This allows the simple use of libraries that make use of the
MPI profiling interface and that are installed in the same directory as
the MPI library.
<P>
If <tt>name.conf</tt> is the name of a file in the sysconfdir directory, then this
is read and may define the following variables:
<DL>
<DT><B>PROFILE_PRELIB </B><DD>Libraries (and paths) to include before the MPI library
<DT><B>PROFILE_POSTLIB </B><DD>Libraries to include after the MPI library
<DT><B>PROFILE_INCPATHS </B><DD>C preprocessor arguments for any include files
For example, to add <tt>/usr/local/myprof/include</tt> to the include path and
the library <tt>libmyprof.a</tt> in <tt>/usr/local/myprof/lib</tt> to the link step,
you could create the file <tt>myprof.conf</tt> with the lines
</DL>
<P>
<PRE>
PROFILE_PRELIB="-L/usr/local/myprof/lib -lmyprof"
PROFILE_INCPATHS="-I/usr/local/myprof/include"
</PRE>
and place it in the sysconfdir directory (this directory is set at
configure time when MPICH is built). Then using the command-line
argument <tt>\-profile=myprof</tt> will cause these
definitions to be added to the relevant compile commands.
<P>
<H0>See Also</H0>
mpicxx, mpifort, mpiexec
<br>
</BODY></HTML>

View File

@@ -0,0 +1,134 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpicxx</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpicxx"><H1>mpicxx</H1></A>
Compiles and links MPI programs written in C++
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
C++. It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command, particularly when linking programs,
as it provides the necessary libraries.
<P>
<H2>Command line arguments</H2>
<DL>
<DT><B>-show </B><DD>Show the commands that would be used without
running them
<DT><B>-help </B><DD>Give short help
<DT><B>-cxx=name </B><DD>Use compiler <tt>name</tt> instead of the default choice. Use
this only if the compiler is compatible with the MPICH
library (see below)
<DT><B>-config=name </B><DD>Load a configuration file for a particular compiler.
This allows a single <tt>mpicxx</tt> command to be used with
multiple compilers.
<DT><B>-compile_info </B><DD>Show the steps for compiling a program. This option
can be used to see what options and include paths are
used by mpicxx.
<DT><B>-link_info </B><DD>Show the steps for linking a program. This option
can be used to see what options and libraries are used by
mpicxx.
<DT><B>-profile=name </B><DD>Use the MPI profiling given by name. See below for
details
<DT><B>-echo </B><DD>Show exactly what this program is doing.
This option should normally not be used.
<DT><B>others </B><DD>are passed to the compiler or linker. For example, <tt>\-c
</tt>causes files to be compiled, <tt>\-g</tt> selects compilation with
debugging on most systems, and <tt>\-o name</tt> causes linking
with the output executable given the name <tt>name</tt>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <tt>MPICH_CXX</tt> may be used
to select different C++ compiler and linker. Note that since
MPICH is built with a particular C and Fortran compiler, changing the
compilers used can cause problems. Use this only if you could intermix
code compiled with the different compilers.
<P>
The environment variable <tt>MPICC_PROFILE</tt> specifies a profile library
and has the same effect as if <tt>\-profile=$MPICC_PROFILE</tt> were used as
an argument to <tt>mpicc</tt>. See the discussion of <tt>\-profile</tt> below for more
details.
<P>
<H2>Compatible Compilers</H2>
The MPI library may be used with any compiler that uses the same
lengths for basic data objects (such as <tt>long double</tt>) and that
uses compatible run-time libraries. On many systems, the various
compilers are compatible and may be used interchangably. There are
exceptions; if you use the <tt>MPICH_CXX</tt> environment variable or the
<tt>\-cxx=name</tt> command-line argument to override the choice of compiler
and encounter problems, try reconfiguring MPICH with the new compiler,
and installing MPICH in a separate location. See the installation manual
for more details.
<P>
<H2>Examples</H2>
To compile a single file <tt>foo.c</tt>, use
<PRE>
mpicxx -c foo.cxx
</PRE>
<P>
To link the output and make an executable, use
<PRE>
mpicxx -o foo foo.o
</PRE>
Combining compilation and linking in a single command
<PRE>
mpicxx -o foo foo.cxx
</PRE>
is a convenient way to build simple programs.
<P>
<H2>Selecting a Profiling Library</H2>
The <tt>\-profile=name</tt> argument allows you to specify an MPI profiling
library to be used. <tt>name</tt> can have two forms:
<P>
<br>A library in the same directory as the MPI library
<br>The name of a profile configuration file
<br>
<P>
If <tt>name</tt> is a library, then this library is included before the MPI
library. This allows the simple use of libraries that make use of the
MPI profiling interface and that are installed in the same directory as
the MPI library.
<P>
If <tt>name.conf</tt> is the name of a file in the sysconfdir directory, then this
is read and may define the following variables:
<DL>
<DT><B>PROFILE_PRELIB </B><DD>Libraries (and paths) to include before the MPI library
<DT><B>PROFILE_POSTLIB </B><DD>Libraries to include after the MPI library
<DT><B>PROFILE_INCPATHS </B><DD>C preprocessor arguments for any include files
For example, to add <tt>/usr/local/myprof/include</tt> to the include path and
the library <tt>libmyprof.a</tt> in <tt>/usr/local/myprof/lib</tt> to the link step,
you could create the file <tt>myprof.conf</tt> with the lines
</DL>
<P>
<PRE>
PROFILE_PRELIB="-L/usr/local/myprof/lib -lmyprof"
PROFILE_INCPATHS="-I/usr/local/myprof/include"
</PRE>
and place it in the sysconfdir directory (this directory is set at
configure time when MPICH is built). Then using the command-line
argument <tt>\-profile=myprof</tt> will cause these
definitions to be added to the relevant compile commands.
<P>
<H0>See Also</H0>
mpicc, mpifort, mpiexec
<br>
</BODY></HTML>

View File

@@ -0,0 +1,152 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpiexec</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpiexec"><H1>mpiexec</H1></A>
Run an MPI program
<H2>Synopsis</H2>
<PRE>
</PRE>
<PRE>
mpiexec args executable pgmargs [ : args executable pgmargs ... ]
</PRE>
where <tt>args</tt> are command line arguments for <tt>mpiexec</tt> (see below),
<tt>executable</tt> is the name of an executable MPI program, and <tt>pgmargs
</tt>are command line arguments for the executable. Multiple executables
can be specified by using the colon notation (for MPMD - Multiple Program
Multiple Data applications). For example, the following command will run
the MPI program <tt>a.out</tt> on 4 processes:
<PRE>
mpiexec -n 4 a.out
</PRE>
<P>
The MPI standard specifies the following arguments and their meanings:
<P>
<DL>
<DT><B>-n &lt;np&gt; </B><DD>Specify the number of processes to use
<DT><B>-host &lt;hostname&gt; </B><DD>Name of host on which to run processes
<DT><B>-arch &lt;architecture name&gt; </B><DD>Pick hosts with this architecture type
<DT><B>-wdir &lt;working directory&gt; </B><DD>cd to this one <em>before</em> running executable
<DT><B>-path &lt;pathlist&gt; </B><DD>use this to find the executable
<DT><B>-soft &lt;triplets&gt; </B><DD>comma separated triplets that specify requested numbers
of processes (see the MPI-2 specification for more details)
<DT><B>-file &lt;name&gt; </B><DD>implementation-defined specification file
<DT><B>-configfile &lt;name&gt; </B><DD>file containing specifications of host/program,
one per line, with # as a comment indicator, e.g., the usual
mpiexec input, but with ":" replaced with a newline. That is,
the configfile contains lines with -soft, -n etc.
</DL>
<P>
Additional arguments that are specific to the MPICH implementation
are discussed below.
<P>
Note that not all of these parameters are meaningful for all
systems. For example, the <tt>gforker</tt> version of <tt>mpiexec</tt> creates all
processes on the same system on which it is running; in that case, the
<tt>\-arch</tt> and <tt>\-host</tt> options are ignored.
<P>
The colon character (<tt>:</tt>) may be used to separate different executables
for MPMD (multiple program multiple data) programming. For example,
to run the program <tt>ocean</tt> on 4 processes and <tt>air</tt> on 8 processes, use:
<P>
<PRE>
mpiexec -n 4 ocean : -n 8 air
</PRE>
<P>
<P>
<H2>MPICH-Specific Arguments</H2>
<P>
Many of the implementations of process managers in MPICH support the
following arguments to <tt>mpiexec</tt>:
<P>
<DL>
<DT><B>-np &lt;num&gt; </B><DD>A synonym for the standard <tt>\-n</tt> argument
<DT><B>-env &lt;name&gt; &lt;value&gt; </B><DD>Set the environment variable <tt>&lt;name&gt;</tt> to <tt>&lt;value&gt;</tt> for
the processes being run by <tt>mpiexec
</tt>
<DT><B>-envnone </B><DD>Pass no environment variables (other than ones specified with
other <tt>\-env</tt> or <tt>\-genv</tt> arguments) to the processes being run by <tt>mpiexec</tt>.
By default, all environment
variables are provided to each MPI process (rationale: principle of
least surprise for the user)
<DT><B>-envlist &lt;list&gt; </B><DD>Pass the listed environment variables (names separated
by commas), with their current values, to the processes being run by
<tt>mpiexec</tt>.
<DT><B>-genv &lt;name&gt; &lt;value&gt; </B><DD>The <tt>\-genv</tt> options have the same meaning as their
corresponding <tt>\-env</tt> version, except they apply to all executables, not just
the current executable (in the case that the colon syntax is used to specify
multiple execuables).
<DT><B>-genvnone </B><DD>Like <tt>\-envnone</tt>, but for all executables
<DT><B>-genvlist &lt;list&gt; </B><DD>Like <tt>\-envlist</tt>, but for all executables
<DT><B>-usize &lt;n&gt; </B><DD>Specify the value returned for the value of the attribute
<tt>MPI_UNIVERSE_SIZE</tt>.
<DT><B>-l </B><DD>Label standard out and standard error (<tt>stdout</tt> and <tt>stderr</tt>) with
the rank of the process
<DT><B>-maxtime &lt;n&gt; </B><DD>Set a timelimit of <tt>&lt;n&gt;</tt> seconds.
<DT><B>-exitinfo </B><DD>Provide more information on the reason each process exited if
there is an abnormal exit
</DL>
<P>
<H2>Environment variables for mpiexec</H2>
The following environment variables are understood by some versions of
<tt>mpiexec</tt>. The command line arguments have priority over these; that is,
if both the environment variable and command line argument are used, the
value specified by the command line argument is used.
<P>
<DL>
<DT><B>MPIEXEC_TIMEOUT </B><DD>Maximum running time in seconds. <tt>mpiexec</tt> will
terminate MPI programs that take longer than the value specified by
<tt>MPIEXEC_TIMEOUT</tt>.
<DT><B>MPIEXEC_UNIVERSE_SIZE </B><DD>Set the universe size
<DT><B>MPIEXEC_PORT_RANGE </B><DD>Set the range of ports that <tt>mpiexec</tt> will use
in communicating with the processes that it starts. The format of
this is <tt>&lt;low&gt;:&lt;high&gt;</tt>. For example, to specify any port between
10000 and 10100, use <tt>10000:10100</tt>.
<DT><B>MPICH_PORT_RANGE </B><DD>Has the same meaning as <tt>MPIEXEC_PORT_RANGE</tt> and
is used if <tt>MPIEXEC_PORT_RANGE</tt> is not set.
<DT><B>MPIEXEC_PREFIX_DEFAULT </B><DD>If this environment variable is set, output
to standard output is prefixed by the rank in <tt>MPI_COMM_WORLD</tt> of the
process and output to standard error is prefixed by the rank and the
text <tt>(err)</tt>; both are followed by an angle bracket (<tt>&gt;</tt>). If
this variable is not set, there is no prefix.
<DT><B>MPIEXEC_PREFIX_STDOUT </B><DD>Set the prefix used for lines sent to standard
output. A <tt>%d</tt> is replaced with the rank in <tt>MPI_COMM_WORLD</tt>; a <tt>%w</tt> is
replaced with an indication of which <tt>MPI_COMM_WORLD</tt> in MPI jobs that
involve multiple <tt>MPI_COMM_WORLD</tt>s (e.g., ones that use <tt>MPI_Comm_spawn</tt> or
<tt>MPI_Comm_connect</tt>).
<DT><B>MPIEXEC_PREFIX_STDERR </B><DD>Like <tt>MPIEXEC_PREFIX_STDOUT</tt>, but for standard error.
</DL>
<P>
<H2>Return Status</H2>
<tt>mpiexec</tt> returns the maximum of the exit status values of all of the
processes created by <tt>mpiexec</tt>.
<P>
</BODY></HTML>

View File

@@ -0,0 +1,129 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpif77</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpif77"><H1>mpif77</H1></A>
Compiles and links MPI programs written in Fortran 77
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
Fortran. It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command, particularly when linking programs,
as it provides the necessary libraries.
<P>
<H2>Command line arguments</H2>
<DL>
<DT><B>-show </B><DD>Show the commands that would be used without
running them
<DT><B>-help </B><DD>Give short help
<DT><B>-f77=name </B><DD>Use compiler <tt>name</tt> instead of the default choice. Use
this only if the compiler is compatible with the MPICH
library (see below)
<DT><B>-config=name </B><DD>Load a configuration file for a particular compiler.
This allows a single <tt>mpif77</tt> command to be used with
multiple compilers.
<DT><B>-compile_info </B><DD>Show the steps for compiling a program. This option
can be used to see what options and include paths are
used by mpif77.
<DT><B>-link_info </B><DD>Show the steps for linking a program. This option
can be used to see what options and libraries are used by
mpif77.
<DT><B>-profile=name </B><DD>Use the MPI profiling given by name. See below for
details
<DT><B>-echo </B><DD>Show exactly what this program is doing.
This option should normally not be used.
<DT><B>others </B><DD>are passed to the compiler or linker. For example, <tt>\-c
</tt>causes files to be compiled, <tt>\-g</tt> selects compilation with
debugging on most systems, and <tt>\-o name</tt> causes linking
with the output executable given the name <tt>name</tt>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <tt>MPICH_F77</tt> may be used
to select different Fortran compiler and linker. Note that since
MPICH is built with a particular C and Fortran compiler, change the
compilers used can cause problems. Use this only if you could intermix
code compiled with the different compilers.
<P>
<H2>Compatible Compilers</H2>
The MPI library may be used with any compiler that uses the same
lengths for basic data objects (such as <tt>long double</tt>) and that
uses compatible run-time libraries. On many systems, the various
compilers are compatible and may be used interchangably. There are
exceptions; if you use the <tt>MPICH_F77</tt> environment variable or the
<tt>\-f77=name</tt> command-line argument to override the choice of compiler
and encounter problems, try reconfiguring MPICH with the new compiler
and installing MPICH in a separate location. See the installation manual
for more details.
<P>
<H2>Examples</H2>
To compile a single file <tt>foo.f</tt>, use
<PRE>
mpif77 -c foo.f
</PRE>
<P>
To link the output and make an executable, use
<PRE>
mpif77 -o foo foo.o
</PRE>
Combining compilation and linking in a single command
<PRE>
mpif77 -o foo foo.f
</PRE>
is a convenient way to build simple programs.
<P>
<H2>Selecting a Profiling Library</H2>
The <tt>\-profile=name</tt> argument allows you to specify an MPI profiling
library to be used. <tt>name</tt> can have two forms:
<P>
<br>A library in the same directory as the MPI library
<br>The name of a profile configuration file
<br>
<P>
If <tt>name</tt> is a library, then this library is included before the MPI
library. This allows the simple use of libraries that make use of the
MPI profiling interface and that are installed in the same directory as
the MPI library.
<P>
If <tt>name.conf</tt> is the name of a file in the sysconfdir directory, then this
is read and may define the following variables:
<DL>
<DT><B>PROFILE_PRELIB </B><DD>Libraries (and paths) to include before the MPI library
<DT><B>PROFILE_POSTLIB </B><DD>Libraries to include after the MPI library
<DT><B>PROFILE_INCPATHS </B><DD>C preprocessor arguments for any include files
For example, to add <tt>/usr/local/myprof/include</tt> to the include path and
the library <tt>libmyprof.a</tt> in <tt>/usr/local/myprof/lib</tt> to the link step,
you could create the file <tt>myprof.conf</tt> with the lines
</DL>
<P>
<PRE>
PROFILE_PRELIB="-L/usr/local/myprof/lib -lmyprof"
PROFILE_INCPATHS="-I/usr/local/myprof/include"
</PRE>
and place it in the sysconfdir directory (this directory is set at
configure time when MPICH is built). Then using the command-line
argument <tt>\-profile=myprof</tt> will cause these
definitions to be added to the relevant compile commands.
<P>
<H0>See Also</H0>
mpicc, mpicxx, mpifort, mpiexec
<br>
</BODY></HTML>

View File

@@ -0,0 +1,129 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpifort</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpifort"><H1>mpifort</H1></A>
Compiles and links MPI programs written in Fortran 90
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
Fortran. It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command, particularly when linking programs,
as it provides the necessary libraries.
<P>
<H2>Command line arguments</H2>
<DL>
<DT><B>-show </B><DD>Show the commands that would be used without
running them
<DT><B>-help </B><DD>Give short help
<DT><B>-fc=name </B><DD>Use compiler <tt>name</tt> instead of the default choice. Use
this only if the compiler is compatible with the MPICH
library (see below)
<DT><B>-config=name </B><DD>Load a configuration file for a particular compiler.
This allows a single <tt>mpifort</tt> command to be used with
multiple compilers.
<DT><B>-compile_info </B><DD>Show the steps for compiling a program. This option
can be used to see what options and include paths are
used by mpifort.
<DT><B>-link_info </B><DD>Show the steps for linking a program. This option
can be used to see what options and libraries are used by
mpifort.
<DT><B>-profile=name </B><DD>Use the MPI profiling given by name. See below for
details
<DT><B>-echo </B><DD>Show exactly what this program is doing.
This option should normally not be used.
<DT><B>others </B><DD>are passed to the compiler or linker. For example, <tt>\-c
</tt>causes files to be compiled, <tt>\-g</tt> selects compilation with
debugging on most systems, and <tt>\-o name</tt> causes linking
with the output executable given the name <tt>name</tt>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <tt>MPICH_FC</tt> may be used
to select different Fortran compiler and linker. Note that since
MPICH is built with a particular C and Fortran compiler, change the
compilers used can cause problems. Use this only if you could intermix
code compiled with the different compilers.
<P>
<H2>Compatible Compilers</H2>
The MPI library may be used with any compiler that uses the same
lengths for basic data objects (such as <tt>long double</tt>) and that
uses compatible run-time libraries. On many systems, the various
compilers are compatible and may be used interchangably. There are
exceptions; if you use the <tt>MPICH_FC</tt> environment variable or the
<tt>\-fc=name</tt> command-line argument to override the choice of compiler
and encounter problems, try reconfiguring MPICH with the new compiler
and installing MPICH in a separate location. See the installation manual
for more details.
<P>
<H2>Examples</H2>
To compile a single file <tt>foo.f</tt>, use
<PRE>
mpifort -c foo.f
</PRE>
<P>
To link the output and make an executable, use
<PRE>
mpifort -o foo foo.o
</PRE>
Combining compilation and linking in a single command
<PRE>
mpifort -o foo foo.f
</PRE>
is a convenient way to build simple programs.
<P>
<H2>Selecting a Profiling Library</H2>
The <tt>\-profile=name</tt> argument allows you to specify an MPI profiling
library to be used. <tt>name</tt> can have two forms:
<P>
<br>A library in the same directory as the MPI library
<br>The name of a profile configuration file
<br>
<P>
If <tt>name</tt> is a library, then this library is included before the MPI
library. This allows the simple use of libraries that make use of the
MPI profiling interface and that are installed in the same directory as
the MPI library.
<P>
If <tt>name.conf</tt> is the name of a file in the sysconfdir directory, then this
is read and may define the following variables:
<DL>
<DT><B>PROFILE_PRELIB </B><DD>Libraries (and paths) to include before the MPI library
<DT><B>PROFILE_POSTLIB </B><DD>Libraries to include after the MPI library
<DT><B>PROFILE_INCPATHS </B><DD>C preprocessor arguments for any include files
For example, to add <tt>/usr/local/myprof/include</tt> to the include path and
the library <tt>libmyprof.a</tt> in <tt>/usr/local/myprof/lib</tt> to the link step,
you could create the file <tt>myprof.conf</tt> with the lines
</DL>
<P>
<PRE>
PROFILE_PRELIB="-L/usr/local/myprof/lib -lmyprof"
PROFILE_INCPATHS="-I/usr/local/myprof/include"
</PRE>
and place it in the sysconfdir directory (this directory is set at
configure time when MPICH is built). Then using the command-line
argument <tt>\-profile=myprof</tt> will cause these
definitions to be added to the relevant compile commands.
<P>
<H0>See Also</H0>
mpicc, mpicxx, mpifort, mpiexec
<br>
</BODY></HTML>

View File

@@ -0,0 +1,891 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>Constants</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="Constants"><H1>Constants</H1></A>
Meaning of MPI's defined constants
<H2>Data types</H2>
Note that the Fortran types should only be used in Fortran programs,
and the C types should only be used in C programs. For example,
it is in error to use <tt>MPI_INT</tt> for a Fortran INTEGER.
Datatypes are of type <tt>MPI_Datatype</tt> in C, type <tt>INTEGER</tt> in Fortran,
and <tt>Type(MPI_Datatype)</tt> in Fortran08
<P>
<H2>C datatypes</H2>
MPI_CHAR - char
<DL><DT><B>MPI_SIGNED_CHAR </B> <DD> signed char
</DL>
<DL><DT><B>MPI_UNSIGNED_CHAR </B> <DD> unsigned char
</DL>
<DL><DT><B>MPI_BYTE </B> <DD> See standard; like unsigned char
</DL>
<DL><DT><B>MPI_WCHAR </B> <DD> wide character (wchar_t)
</DL>
<DL><DT><B>MPI_SHORT </B> <DD> short
</DL>
<DL><DT><B>MPI_UNSIGNED_SHORT </B> <DD> unsigned short
</DL>
<DL><DT><B>MPI_INT </B> <DD> int
</DL>
<DL><DT><B>MPI_UNSIGNED </B> <DD> unsigned int
</DL>
<DL><DT><B>MPI_LONG </B> <DD> long
</DL>
<DL><DT><B>MPI_UNSIGNED_LONG </B> <DD> unsigned long
</DL>
<DL><DT><B>MPI_LONG_LONG_INT </B> <DD> long long
</DL>
<DL><DT><B>MPI_LONG_LONG </B> <DD> synonyn for <tt>MPI_LONG_LONG_INT
</tt>
</DL>
<DL><DT><B>MPI_UNSIGNED_LONG_LONG </B> <DD> unsigned long long
</DL>
<DL><DT><B>MPI_FLOAT </B> <DD> float
</DL>
<DL><DT><B>MPI_DOUBLE </B> <DD> double
</DL>
<DL><DT><B>MPI_LONG_DOUBLE </B> <DD> long double (some systems may not implement this)
</DL>
<DL><DT><B>MPI_INT8_T </B> <DD> int8_t
</DL>
<DL><DT><B>MPI_INT16_T </B> <DD> int16_t
</DL>
<DL><DT><B>MPI_INT32_T </B> <DD> int32_t
</DL>
<DL><DT><B>MPI_INT64_T </B> <DD> int64_t
</DL>
<DL><DT><B>MPI_UINT8_T </B> <DD> uint8_t
</DL>
<DL><DT><B>MPI_UINT16_T </B> <DD> uint16_t
</DL>
<DL><DT><B>MPI_UINT32_T </B> <DD> uint32_t
</DL>
<DL><DT><B>MPI_UINT64_T </B> <DD> uint64_t
</DL>
<DL><DT><B>MPI_C_BOOL </B> <DD> _Bool
</DL>
<DL><DT><B>MPI_C_FLOAT_COMPLEX </B> <DD> float _Complex
</DL>
<DL><DT><B>MPI_C_COMPLEX </B> <DD> float _Complex
</DL>
<DL><DT><B>MPI_C_DOUBLE_COMPLEX </B> <DD> double _Complex
</DL>
<DL><DT><B>MPI_C_LONG_DOUBLE_COMPLEX </B> <DD> long double _Complex
</DL>
</DL>
<P>
<P>
The following are datatypes for the MPI functions <tt>MPI_MAXLOC</tt> and
<tt>MPI_MINLOC</tt>.
MPI_FLOAT_INT - <tt>struct { float, int }
</tt>
<DL><DT><B>MPI_LONG_INT </B> <DD> <tt>struct { long, int }
</tt>
</DL>
<DL><DT><B>MPI_DOUBLE_INT </B> <DD> <tt>struct { double, int }
</tt>
</DL>
<DL><DT><B>MPI_SHORT_INT </B> <DD> <tt>struct { short, int }
</tt>
</DL>
<DL><DT><B>MPI_2INT </B> <DD> <tt>struct { int, int }
</tt>
</DL>
<DL><DT><B>MPI_LONG_DOUBLE_INT </B> <DD> <tt>struct { long double, int }</tt>; this
is an <em>optional</em> type, and may be set to <tt>MPI_DATATYPE_NULL
</tt>
</DL>
</DL>
<P>
<P>
Special datatypes for C and Fortran
MPI_PACKED - For <tt>MPI_Pack</tt> and <tt>MPI_Unpack
</tt>
<DL><DT><B>MPI_UB </B> <DD> For <tt>MPI_Type_struct</tt>; an upper-bound indicator. Removed in MPI 3
</DL>
<DL><DT><B>MPI_LB </B> <DD> For <tt>MPI_Type_struct</tt>; a lower-bound indicator. Removed in MPI 3
</DL>
</DL>
<P>
<H2>Fortran datatypes</H2>
MPI_REAL - <tt>REAL
</tt>
<DL><DT><B>MPI_INTEGER </B> <DD> <tt>INTEGER
</tt>
</DL>
<DL><DT><B>MPI_LOGICAL </B> <DD> <tt>LOGICAL
</tt>
</DL>
<DL><DT><B>MPI_DOUBLE_PRECISION </B> <DD> <tt>DOUBLE PRECISION
</tt>
</DL>
<DL><DT><B>MPI_COMPLEX </B> <DD> <tt>COMPLEX
</tt>
</DL>
<DL><DT><B>MPI_DOUBLE_COMPLEX </B> <DD> <tt>complex*16</tt> (or <tt>complex*32</tt>) where supported.
</DL>
</DL>
<P>
The following datatypes are optional
MPI_INTEGER1 - <tt>integer*1</tt> if supported
<DL><DT><B>MPI_INTEGER2 </B> <DD> <tt>integer*2</tt> if supported
</DL>
<DL><DT><B>MPI_INTEGER4 </B> <DD> <tt>integer*4</tt> if supported
</DL>
<DL><DT><B>MPI_INTEGER8 </B> <DD> <tt>integer*8</tt> if supported
</DL>
<DL><DT><B>MPI_INTEGER16 </B> <DD> <tt>integer*16</tt> if supported
</DL>
<DL><DT><B>MPI_REAL4 </B> <DD> <tt>real*4</tt> if supported
</DL>
<DL><DT><B>MPI_REAL8 </B> <DD> <tt>real*8</tt> if supported
</DL>
</DL>
<DL><DT><B>MPI_REAL16 </B> <DD> <tt>real*16</tt> if supported
</DL>
<DL><DT><B>MPI_COMPLEX8 </B> <DD> <tt>complex*8</tt> if supported
</DL>
<DL><DT><B>MPI_COMPLEX16 </B> <DD> <tt>complex*16</tt> if supported
</DL>
<DL><DT><B>MPI_COMPLEX32 </B> <DD> <tt>complex*32</tt> if supported
</DL>
</DL>
<P>
The following are datatypes for the MPI functions <tt>MPI_MAXLOC</tt> and
<tt>MPI_MINLOC</tt>. In Fortran, these datatype always consist of
two elements of the same Fortran type.
MPI_2INTEGER - <tt>INTEGER,INTEGER
</tt>
<DL><DT><B>MPI_2REAL </B> <DD> <tt>REAL, REAL
</tt>
</DL>
<DL><DT><B>MPI_2DOUBLE_PRECISION </B> <DD> <tt>DOUBLE PRECISION, DOUBLE PRECISION
</tt>
</DL>
</DL>
<P>
MPI Datatypes for MPI Types
MPI_AINT - Datatype for an <tt>MPI_Aint
</tt>
<DL><DT><B>MPI_OFFSET </B> <DD> Datatype for an <tt>MPI_Offset
</tt>
</DL>
<DL><DT><B>MPI_COUNT </B> <DD> Datatype for an <tt>MPI_Count
</tt>
</DL>
</DL>
<P>
<H2>MPI Datatype Combiner Names</H2>
MPI_COMBINER_NAMED - a named predefined datatype
<DL><DT><B>MPI_COMBINER_DUP </B> <DD> MPI_TYPE_DUP
</DL>
<DL><DT><B>MPI_COMBINER_CONTIGUOUS </B> <DD> MPI_TYPE_CONTIGUOUS
</DL>
<DL><DT><B>MPI_COMBINER_VECTOR </B> <DD> MPI_TYPE_VECTOR
</DL>
<DL><DT><B>MPI_COMBINER_HVECTOR_INTEGER </B> <DD> Removed in MPI-3
</DL>
<DL><DT><B>MPI_COMBINER_HVECTOR </B> <DD> MPI_TYPE_CREATE_HVECTOR
</DL>
<DL><DT><B>MPI_COMBINER_INDEXED </B> <DD> MPI_TYPE_INDEXED
</DL>
<DL><DT><B>MPI_COMBINER_HINDEXED_INTEGER </B> <DD> Removed in MPI-3
</DL>
<DL><DT><B>MPI_COMBINER_HINDEXED </B> <DD> MPI_TYPE_CREATE_HINDEXED
</DL>
<DL><DT><B>MPI_COMBINER_INDEXED_BLOCK </B> <DD> MPI_TYPE_CREATE_INDEXED_BLOCK
</DL>
<DL><DT><B>MPI_COMBINER_STRUCT_INTEGER </B> <DD> Removed in MPI-3
</DL>
<DL><DT><B>MPI_COMBINER_STRUCT </B> <DD> MPI_TYPE_CREATE_STRUCT
</DL>
<DL><DT><B>MPI_COMBINER_SUBARRAY </B> <DD> MPI_TYPE_CREATE_SUBARRAY
</DL>
<DL><DT><B>MPI_COMBINER_DARRAY </B> <DD> MPI_TYPE_CREATE_DARRAY
</DL>
<DL><DT><B>MPI_COMBINER_F90_REAL </B> <DD> MPI_TYPE_CREATE_F90_REAL
</DL>
<DL><DT><B>MPI_COMBINER_F90_COMPLEX </B> <DD> MPI_TYPE_CREATE_F90_COMPLEX
</DL>
<DL><DT><B>MPI_COMBINER_F90_INTEGER </B> <DD> MPI_TYPE_CREATE_F90_INTEGER
</DL>
<DL><DT><B>MPI_COMBINER_RESIZED </B> <DD> MPI_TYPE_CREATE_RESIZED
</DL>
<DL><DT><B>MPI_COMBINER_HINDEXED_BLOCK </B> <DD> MPI_TYPE_CREATE_HINDEXED_BLOCK
</DL>
</DL>
<P>
<H2>MPI Datatype Type Classes</H2>
MPI Type classes used with routines to return Fortran types with defined
precision and range
MPI_TYPECLASS_REAL - <tt>REAL
</tt>
<DL><DT><B>MPI_TYPECLASS_INTEGER </B> <DD> <tt>INTEGER
</tt>
</DL>
<DL><DT><B>MPI_TYPECLASS_COMPLEX </B> <DD> <tt>COMPLEX
</tt>
</DL>
</DL>
<P>
<H2>MPI Darray and Subarray Values</H2>
These values are used to create a datatype with the <tt>DARRAY</tt> and <tt>SUBARRAY
</tt>constructors.
MPI_ORDER_C - Row-major order (as used by C)
<DL><DT><B>MPI_ORDER_FORTRAN </B> <DD> Column-major order (as used by Fortran)
</DL>
<DL><DT><B>MPI_DISTRIBUTE_BLOCK </B> <DD> Block distribution
</DL>
<DL><DT><B>MPI_DISTRIBUTE_CYCLIC </B> <DD> Cyclic distribution
</DL>
<DL><DT><B>MPI_DISTRIBUTE_NONE </B> <DD> This dimension is not distributed
</DL>
<DL><DT><B>MPI_DISTRIBUTE_DFLT_DARG </B> <DD> Use the default distribution
</DL>
</DL>
<P>
<H2>Communicators</H2>
Communicators are of type <tt>MPI_Comm</tt> in C, <tt>INTEGER</tt> in Fortran, and
<tt>Type(MPI_Comm)</tt> in Fortran08
MPI_COMM_WORLD - Contains all of the processes
<DL><DT><B>MPI_COMM_SELF </B> <DD> Contains only the calling process
</DL>
</DL>
<P>
<H2>Kind of communicator for 'MPI_COMM_SPLIT_TYPE'</H2>
MPI_COMM_TYPE_SHARED - All processes that can share memory are grouped into
the same communicator.
<P>
<H2>Groups</H2>
Groups are of type <tt>MPI_Group</tt> in C, <tt>INTEGER</tt> in Fortran,
and <tt>Type(MPI_Group)</tt> in Fortran08
<P>
MPI_GROUP_EMPTY - A group containing no members.
<P>
<H2>Results of the compare operations on groups and communicators</H2>
MPI_IDENT - Identical
<DL><DT><B>MPI_CONGRUENT </B> <DD> (only for <tt>MPI_COMM_COMPARE</tt>) The groups are identical
</DL>
<DL><DT><B>MPI_SIMILAR </B> <DD> Same members, but in a different order
</DL>
<DL><DT><B>MPI_UNEQUAL </B> <DD> Different
</DL>
</DL>
<P>
<P>
<H2>Collective operations</H2>
The collective combination operations (e.g., <tt>MPI_REDUCE</tt>, <tt>MPI_ALLREDUCE</tt>,
<tt>MPI_REDUCE_SCATTER</tt>, and <tt>MPI_SCAN</tt>) take a combination operation.
This operation is of type <tt>MPI_Op</tt> in C and of type <tt>INTEGER</tt> in Fortran.
The predefined operations are
<P>
MPI_MAX - return the maximum
<DL><DT><B>MPI_MIN </B> <DD> return the minumum
</DL>
<DL><DT><B>MPI_SUM </B> <DD> return the sum
</DL>
<DL><DT><B>MPI_PROD </B> <DD> return the product
</DL>
<DL><DT><B>MPI_LAND </B> <DD> return the logical and
</DL>
<DL><DT><B>MPI_BAND </B> <DD> return the bitwise and
</DL>
<DL><DT><B>MPI_LOR </B> <DD> return the logical or
</DL>
<DL><DT><B>MPI_BOR </B> <DD> return the bitwise of
</DL>
<DL><DT><B>MPI_LXOR </B> <DD> return the logical exclusive or
</DL>
<DL><DT><B>MPI_BXOR </B> <DD> return the bitwise exclusive or
</DL>
<DL><DT><B>MPI_MINLOC </B> <DD> return the minimum and the location (actually, the value of
the second element of the structure where the minimum of
the first is found)
</DL>
<DL><DT><B>MPI_MAXLOC </B> <DD> return the maximum and the location
</DL>
<DL><DT><B>MPI_REPLACE </B> <DD> replace b with a
</DL>
<DL><DT><B>MPI_NO_OP </B> <DD> perform no operation
</DL>
</DL>
<P>
<H2>Notes on collective operations</H2>
<P>
The reduction functions (<tt>MPI_Op</tt>) do not return an error value. As a result,
if the functions detect an error, all they can do is either call <tt>MPI_Abort
</tt>or silently skip the problem. Thus, if you change the error handler from
<tt>MPI_ERRORS_ARE_FATAL</tt> to something else, for example, <tt>MPI_ERRORS_RETURN</tt>,
then no error may be indicated.
<P>
The reason for this is the performance problems in ensuring that
all collective routines return the same error value.
<P>
Note that not all datatypes are valid for these functions. For example,
<tt>MPI_COMPLEX</tt> is not valid for <tt>MPI_MAX</tt> and <tt>MPI_MIN</tt>. In addition, the MPI
1.1 standard did not include the C types <tt>MPI_CHAR</tt> and <tt>MPI_UNSIGNED_CHAR
</tt>among the lists of arithmetic types for operations like <tt>MPI_SUM</tt>. However,
since the C type <tt>char</tt> is an integer type (like <tt>short</tt>), it should have been
included. The MPI Forum will probably include <tt>char</tt> and <tt>unsigned char
</tt>as a clarification to MPI 1.1; until then, users are advised that MPI
implementations may not accept <tt>MPI_CHAR</tt> and <tt>MPI_UNSIGNED_CHAR</tt> as valid
datatypes for <tt>MPI_SUM</tt>, <tt>MPI_PROD</tt>, etc. MPICH does allow these datatypes.
<P>
<H2>Permanent key values</H2>
These are the same in C and Fortran
<P>
MPI_TAG_UB - Largest tag value
<DL><DT><B>MPI_HOST </B> <DD> Rank of process that is host, if any
</DL>
<DL><DT><B>MPI_IO </B> <DD> Rank of process that can do I/O
</DL>
<DL><DT><B>MPI_WTIME_IS_GLOBAL </B> <DD> Has value 1 if <tt>MPI_WTIME</tt> is globally synchronized.
</DL>
<DL><DT><B>MPI_UNIVERSE_SIZE </B> <DD> Number of available processes. See the standard for
a description of limitations on this value
</DL>
<DL><DT><B>MPI_LASTUSEDCODE </B> <DD> Last used MPI error code (check - code or class?)
</DL>
<DL><DT><B>MPI_APPNUM </B> <DD> Application number, starting from 0. See the standard for
<tt>MPI_COMM_SPAWN_MULTIPLE</tt> and <tt>mpiexec</tt> for details
</DL>
</DL>
<P>
<H2>Null objects</H2>
MPI_COMM_NULL - Null communicator
<DL><DT><B>MPI_OP_NULL </B> <DD> Null operation
</DL>
<DL><DT><B>MPI_GROUP_NULL </B> <DD> Null group
</DL>
<DL><DT><B>MPI_DATATYPE_NULL </B> <DD> Null datatype
</DL>
<DL><DT><B>MPI_REQUEST_NULL </B> <DD> Null request
</DL>
<DL><DT><B>MPI_ERRHANDLER_NULL </B> <DD> Null error handler
</DL>
<DL><DT><B>MPI_WIN_NULL </B> <DD> Null window handle
</DL>
<DL><DT><B>MPI_FILE_NULL </B> <DD> Null file handle
</DL>
<DL><DT><B>MPI_INFO_NULL </B> <DD> Null info handle
</DL>
<DL><DT><B>MPI_MESSAGE_NULL </B> <DD> Null message handle
</DL>
<DL><DT><B>MPI_ARGV_NULL </B> <DD> Empty ARGV value for spawn commands
</DL>
<DL><DT><B>MPI_ARGVS_NULL </B> <DD> Empty ARGV array for spawn-multiple command
</DL>
<DL><DT><B>MPI_T_ENUM_NULL </B> <DD> Null MPI_T enum
</DL>
<DL><DT><B>MPI_T_CVAR_HANDLE_NULL </B> <DD> Null MPI_T control variable handle
</DL>
<DL><DT><B>MPI_T_PVAR_HANDLE_NULL </B> <DD> Null MPI_T performance variable handle
</DL>
<DL><DT><B>MPI_T_PVAR_SESSION_NULL</B> <DD> Null MPI_T performance variable session handle
</DL>
</DL>
<P>
<H2>Predefined Constants</H2>
MPI_MAX_PROCESSOR_NAME - Maximum length of name returned by
<tt>MPI_GET_PROCESSOR_NAME
</tt>
<DL><DT><B>MPI_MAX_ERROR_STRING </B> <DD> Maximum length of string return by
<tt>MPI_ERROR_STRING
</tt>
</DL>
<DL><DT><B>MPI_MAX_LIBRARY_VERSION_STRING </B> <DD> Maximum length of string returned by
<tt>MPI_GET_LIBRARY_VERSION_STRING</tt>???
</DL>
<DL><DT><B>MPI_MAX_PORT_NAME </B> <DD> Maximum length of a port
</DL>
<DL><DT><B>MPI_MAX_OBJECT_NAME </B> <DD> Maximum length of an object (?)
</DL>
<DL><DT><B>MPI_MAX_INFO_KEY </B> <DD> Maximum length of an info key
</DL>
<DL><DT><B>MPI_MAX_INFO_VAL </B> <DD> Maximum length of an info value
</DL>
<DL><DT><B>MPI_UNDEFINED </B> <DD> Used by many routines to indicated
undefined or unknown integer value
</DL>
<DL><DT><B>MPI_UNDEFINED_RANK </B> <DD> Unknown rank
</DL>
<DL><DT><B>MPI_KEYVAL_INVALID </B> <DD> Special keyval that may be used to detect
uninitialized keyvals.
</DL>
<DL><DT><B>MPI_BSEND_OVERHEAD </B> <DD> Add this to the size of a <tt>MPI_BSEND
</tt>buffer for each outstanding message
</DL>
<DL><DT><B>MPI_PROC_NULL </B> <DD> This rank may be used to send or receive from no-one.
</DL>
<DL><DT><B>MPI_ANY_SOURCE </B> <DD> In a receive, accept a message from anyone.
</DL>
<DL><DT><B>MPI_ANY_TAG </B> <DD> In a receive, accept a message with any tag value.
</DL>
<DL><DT><B>MPI_BOTTOM </B> <DD> May be used to indicate the bottom of the address space
</DL>
<DL><DT><B>MPI_IN_PLACE </B> <DD> Special location for buffer in some
collective communication routines
</DL>
<DL><DT><B>MPI_VERSION </B> <DD> Numeric value of MPI version (e.g., 3)
</DL>
<DL><DT><B>MPI_SUBVERSION </B> <DD> Numeric value of MPI subversion (e.g., 1)
</DL>
</DL>
<P>
<H2>Topology types</H2>
MPI_CART - Cartesian grid
<DL><DT><B>MPI_GRAPH </B> <DD> General graph
</DL>
<DL><DT><B>MPI_DIST_GRAPH </B> <DD> General distributed graph
</DL>
</DL>
<P>
<H2>Special values for distributed graph</H2>
MPI_UNWEIGHTED - Indicates that the edges are unweighted
<DL><DT><B>MPI_WEIGHTS_EMPTY </B> <DD> Special address that indicates no array of weights
information
</DL>
</DL>
<P>
<H2>File Modes</H2>
MPI_MODE_RDONLY - Read only
<DL><DT><B>MPI_MODE_RDWR </B> <DD> Read and write
</DL>
<DL><DT><B>MPI_MODE_WRONLY </B> <DD> Write only
</DL>
<DL><DT><B>MPI_MODE_CREATE </B> <DD> Create the file if it does not exist
</DL>
<DL><DT><B>MPI_MODE_EXCL </B> <DD> It is an error if creating a file that already
exists
</DL>
<DL><DT><B>MPI_MODE_DELETE_ON_CLOSE </B> <DD> Delete the file on close
</DL>
<DL><DT><B>MPI_MODE_UNIQUE_OPEN </B> <DD> The file will not be concurrently opened elsewhere
</DL>
<DL><DT><B>MPI_MODE_APPEND </B> <DD> The initial position of all file pointers is at
the end of the file
</DL>
<DL><DT><B>MPI_MODE_SEQUENTIAL </B> <DD> File will only be accessed sequentially
</DL>
</DL>
<P>
<H2>File Displacement</H2>
MPI_DISPLACEMENT_CURRENT - Use with files opened with mode
<tt>MPI_MODE_SEQUENTIAL</tt> in calls to <tt>MPI_FILE_SET_VIEW
</tt>
<P>
<H2>File Positioning</H2>
MPI_SEEK_SET - Set the pointer to <tt>offset
</tt>
<DL><DT><B>MPI_SEEK_CUR </B> <DD> Set the pointer to the current position plus <tt>offset
</tt>
</DL>
<DL><DT><B>MPI_SEEK_END </B> <DD> Set the pointer to the end of the file plus <tt>offset
</tt>
</DL>
</DL>
<P>
<H2>Window attributes</H2>
MPI_WIN_BASE - window base address.
<DL><DT><B>MPI_WIN_SIZE </B> <DD> window size, in bytes
</DL>
<DL><DT><B>MPI_WIN_DISP_UNIT </B> <DD> displacement unit associated with the window
</DL>
<DL><DT><B>MPI_WIN_CREATE_FLAVOR </B> <DD> how the window was created
</DL>
<DL><DT><B>MPI_WIN_MODEL </B> <DD> memory model for window
</DL>
</DL>
<P>
<H2>Window flavors</H2>
MPI_WIN_FLAVOR_CREATE - Window was created with MPI_WIN_CREATE.
<DL><DT><B>MPI_WIN_FLAVOR_ALLOCATE </B> <DD> Window was created with MPI_WIN_ALLOCATE.
</DL>
<DL><DT><B>MPI_WIN_FLAVOR_DYNAMIC </B> <DD> Window was created with MPI_WIN_CREATE_DYNAMIC.
</DL>
<DL><DT><B>MPI_WIN_FLAVOR_SHARED </B> <DD> Window was created with MPI_WIN_ALLOCATE_SHARED.
</DL>
</DL>
<P>
<H2>Window Memory Model</H2>
MPI_WIN_SEPARATE - Separate public and private copies of window memory
<DL><DT><B>MPI_WIN_UNIFIED </B> <DD> The publich and private copies are identical (by which
we mean that updates are eventually observed without additional RMA operations)
</DL>
</DL>
<P>
<H2>Window Lock Types</H2>
MPI_LOCK_EXCLUSIVE - Only one process at a time will execute accesses
within the lock
<DL><DT><B>MPI_LOCK_SHARED </B> <DD> Not exclusive; multiple processes may execute accesses
within the lock
</DL>
</DL>
<P>
<H2>Window Assertions</H2>
See section 11.5 in MPI 3.1 for a detailed description of each of these
assertion values.
MPI_MODE_NOCHECK - The matching calls to MPI_WIN_POST or MPI_WIN_START
have already completed, or no process holds or will attempt to acquire, a
conflicting lock.
<DL><DT><B>MPI_MODE_NOSTORE </B> <DD> The local window has not been updated by stores
since the last synchronization
</DL>
<DL><DT><B>MPI_MODE_NOPUT </B> <DD> The local window will not be updated by put or
accumulate until the next synchronization
</DL>
<DL><DT><B>MPI_MODE_NOPRECEDE </B> <DD> The fence does not complete any locally issued RMA
calls
</DL>
<DL><DT><B>MPI_MODE_NOSUCCEED </B> <DD> The fence does not start any locally issued RMA calls
</DL>
</DL>
<P>
<H2>Predefined Info Object</H2>
MPI_INFO_ENV - Contains the execution environment
<P>
<H2>MPI Status</H2>
The <tt>MPI_Status</tt> datatype is a structure in C. The three elements for use
by programmers are
MPI_SOURCE - Who sent the message
<DL><DT><B>MPI_TAG </B> <DD> What tag the message was sent with
</DL>
<DL><DT><B>MPI_ERROR </B> <DD> Any error return (only when the error returned by the routine
has error class <tt>MPI_ERR_IN_STATUS</tt>)
</DL>
</DL>
<P>
MPI_STATUS_IGNORE - Ignore a single <tt>MPI_Status</tt> argument
<DL><DT><B>MPI_STATUSES_IGNORE </B> <DD> Ignore an array of <tt>MPI_Status
</tt>
</DL>
</DL>
<P>
<H2>Special value for error codes array</H2>
MPI_ERRCODES_IGNORE - Ignore an array of error codes
<P>
<H2>MPI_T Constants</H2>
MPI_T_VERBOSITY_USER_BASIC - Basic information of interest to users
<DL><DT><B>MPI_T_VERBOSITY_USER_DETAIL </B> <DD> Detailed information of interest to users
</DL>
<DL><DT><B>MPI_T_VERBOSITY_USER_ALL </B> <DD> All remaining information of interest to users
</DL>
<DL><DT><B>MPI_T_VERBOSITY_TUNER_BASIC </B> <DD> Basic information required for tuning
</DL>
<DL><DT><B>MPI_T_VERBOSITY_TUNER_DETAIL </B> <DD> Detailed information required for tuning
</DL>
<DL><DT><B>MPI_T_VERBOSITY_TUNER_ALL </B> <DD> All remaining information required for tuning
</DL>
<DL><DT><B>MPI_T_VERBOSITY_MPIDEV_BASIC </B> <DD> Basic information for MPI implementors
</DL>
<P>
<P>
<DL><DT><B>MPI_T_VERBOSITY_MPIDEV_DETAIL </B> <DD> Detailed information for MPI implementors
</DL>
<DL><DT><B>MPI_T_VERBOSITY_MPIDEV_ALL </B> <DD> All remaining information for MPI implementors
</DL>
<DL><DT><B>MPI_T_BIND_NO_OBJECT </B> <DD> Applies globally to entire MPI process
</DL>
<DL><DT><B>MPI_T_BIND_MPI_COMM </B> <DD> MPI communicators
</DL>
<DL><DT><B>MPI_T_BIND_MPI_DATATYPE </B> <DD> MPI datatypes
</DL>
<DL><DT><B>MPI_T_BIND_MPI_ERRHANDLER </B> <DD> MPI error handlers
</DL>
<DL><DT><B>MPI_T_BIND_MPI_FILE </B> <DD> MPI file handles
</DL>
<DL><DT><B>MPI_T_BIND_MPI_GROUP </B> <DD> MPI groups
</DL>
<DL><DT><B>MPI_T_BIND_MPI_OP </B> <DD> MPI reduction operators
</DL>
<DL><DT><B>MPI_T_BIND_MPI_REQUEST </B> <DD> MPI requests
</DL>
<DL><DT><B>MPI_T_BIND_MPI_WIN </B> <DD> MPI windows for one-sided communication
</DL>
<DL><DT><B>MPI_T_BIND_MPI_MESSAGE </B> <DD> MPI message object
</DL>
<DL><DT><B>MPI_T_BIND_MPI_INFO </B> <DD> MPI info object
</DL>
<DL><DT><B>MPI_T_SCOPE_CONSTANT </B> <DD> read-only, value is constant
</DL>
<DL><DT><B>MPI_T_SCOPE_READONLY </B> <DD> read-only, cannot be written, but can
change
</DL>
<DL><DT><B>MPI_T_SCOPE_LOCAL </B> <DD> may be writeable, writing is a local
operation
</DL>
<DL><DT><B>MPI_T_SCOPE_GROUP </B> <DD> may be writeable, must be done to a
group of processes, all processes in a group must be set to consistent values
</DL>
<DL><DT><B>MPI_T_SCOPE_GROUP_EQ </B> <DD> may be writeable, must be done to a
group of processes, all processes in a group must be set to the same value
</DL>
<DL><DT><B>MPI_T_SCOPE_ALL </B> <DD> may be writeable, must be done to all
processes, all connected processes must be set to consistent values
</DL>
<DL><DT><B>MPI_T_SCOPE_ALL_EQ </B> <DD> may be writeable, must be done to all
processes, all connected processes must be set to the same value
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_STATE </B> <DD> set of discrete states (MPI_INT)
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_LEVEL </B> <DD> utilization level of a resource
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_SIZE </B> <DD> size of a resource
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_PERCENTAGE </B> <DD> percentage utilization of a resource
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_HIGHWATERMARK </B> <DD> high watermark of a resource
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_LOWWATERMARK </B> <DD> low watermark of a resource
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_COUNTER </B> <DD> number of occurances of an event
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_AGGREGATE </B> <DD> aggregate value over an event (e.g.,
sum of all memory allocations)
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_TIMER </B> <DD> aggretate time spent executing event
</DL>
<DL><DT><B>MPI_T_PVAR_CLASS_GENERIC </B> <DD> used for any other time of performance
variable
</DL>
</DL>
<P>
<H2>Thread levels</H2>
MPI_THREAD_SINGLE - Only one thread executes
<DL><DT><B>MPI_THREAD_FUNNELED </B> <DD> Only the main thread makes MPI calls
</DL>
<DL><DT><B>MPI_THREAD_SERIALIZED </B> <DD> Only one thread at a time makes MPI calls
</DL>
<DL><DT><B>MPI_THREAD_MULTIPLE </B> <DD> Multiple threads may make MPI calls
</DL>
</DL>
<P>
<H2>Special MPI types and functions</H2>
<P>
MPI_Aint - C type that holds any valid address.
<DL><DT><B>MPI_Count </B> <DD> C type that holds any valid count.
</DL>
<DL><DT><B>MPI_Offset </B> <DD> C type that holds any valid file offset.
</DL>
<DL><DT><B>MPI_Handler_function </B> <DD> C function for handling errors (see
<tt>MPI_Errhandler_create</tt>) .
</DL>
<DL><DT><B>MPI_User_function </B> <DD> C function to combine values (see collective operations
and <tt>MPI_Op_create</tt>)
</DL>
<DL><DT><B>MPI_Copy_function </B> <DD> Function to copy attributes (see <tt>MPI_Keyval_create</tt>)
</DL>
<DL><DT><B>MPI_Delete_function </B> <DD> Function to delete attributes (see <tt>MPI_Keyval_create</tt>)
</DL>
<DL><DT><B>MPI_ERRORS_ARE_FATAL </B> <DD> Error handler that forces exit on error
</DL>
<DL><DT><B>MPI_ERRORS_RETURN </B> <DD> Error handler that returns error codes (as value of
MPI routine in C and through last argument in Fortran)
</DL>
</DL>
<P>
<H2>MPI Attribute Default Functions</H2>
MPI_COMM_NULL_COPY_FN - Predefined attribute copy function for communicators
<DL><DT><B>MPI_COMM_NULL_DELETE_FN </B> <DD> Predefined attribute delete function for communicators
</DL>
<DL><DT><B>MPI_COMM_DUP_FN </B> <DD> Predefined attribute duplicate function for communicators
</DL>
<DL><DT><B>MPI_WIN_NULL_COPY_FN </B> <DD> Predefined attribute copy function for windows
</DL>
<DL><DT><B>MPI_WIN_NULL_DELETE_FN </B> <DD> Predefined attribute delete function for windows
</DL>
<DL><DT><B>MPI_WIN_DUP_FN </B> <DD> Predefined attribute duplicate function for windows
</DL>
<DL><DT><B>MPI_TYPE_NULL_COPY_FN </B> <DD> Predefined attribute copy function for datatypes
</DL>
<DL><DT><B>MPI_TYPE_NULL_DELETE_FN </B> <DD> Predefined attribute delete function for datatypes
</DL>
<DL><DT><B>MPI_TYPE_DUP_FN </B> <DD> Predefined attribute duplicate function for datatypes
</DL>
</DL>
<P>
<H2>MPI-1 Attribute Default Functions</H2>
MPI_NULL_COPY_FN - Predefined copy function
<DL><DT><B>MPI_NULL_DELETE_FN </B> <DD> Predefined delete function
</DL>
<DL><DT><B>MPI_DUP_FN </B> <DD> Predefined duplication function
</DL>
</DL>
<P>
<H2>MPI Error classes</H2>
MPI_SUCCESS - Successful return code
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid rank
</DL>
<DL><DT><B>MPI_ERR_ROOT </B> <DD> Invalid root
</DL>
<DL><DT><B>MPI_ERR_GROUP </B> <DD> Null group passed to function
</DL>
<DL><DT><B>MPI_ERR_OP </B> <DD> Invalid operation
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology
</DL>
<DL><DT><B>MPI_ERR_DIMS </B> <DD> Illegal dimension argument
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument
</DL>
<DL><DT><B>MPI_ERR_UNKNOWN </B> <DD> Unknown error
</DL>
<DL><DT><B>MPI_ERR_TRUNCATE </B> <DD> Message truncated on receive
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use Error_string
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> Internal error code
</DL>
<DL><DT><B>MPI_ERR_IN_STATUS </B> <DD> Look in status for error value
</DL>
<DL><DT><B>MPI_ERR_PENDING </B> <DD> Pending request
</DL>
<DL><DT><B>MPI_ERR_REQUEST </B> <DD> Invalid mpi_request handle
</DL>
<DL><DT><B>MPI_ERR_ACCESS </B> <DD> Permission denied
</DL>
<DL><DT><B>MPI_ERR_AMODE </B> <DD> Error related to the amode passed to
<tt>MPI_FILE_OPEN
</tt>
</DL>
<DL><DT><B>MPI_ERR_BAD_FILE </B> <DD> Invalid file name (e.g., path name too long)
</DL>
<DL><DT><B>MPI_ERR_CONVERSION </B> <DD> An error occurred in a user supplied data
conversion function
</DL>
<DL><DT><B>MPI_ERR_DUP_DATAREP </B> <DD> Conversion functions could not be registered
because a data representation identifier that was already defined was passed
to <tt>MPI_REGISTER_DATAREP
</tt>
</DL>
<DL><DT><B>MPI_ERR_FILE_EXISTS </B> <DD> File exists
</DL>
<DL><DT><B>MPI_ERR_FILE_IN_USE </B> <DD> File operation could not be completed, as
the file is currently open by some process
</DL>
<DL><DT><B>MPI_ERR_FILE </B> <DD> Invalid file handle
</DL>
<DL><DT><B>MPI_ERR_IO </B> <DD> Other I/O error
</DL>
<DL><DT><B>MPI_ERR_NO_SPACE </B> <DD> Not enough space
</DL>
<DL><DT><B>MPI_ERR_NO_SUCH_FILE </B> <DD> File does not exist
</DL>
<DL><DT><B>MPI_ERR_READ_ONLY </B> <DD> Read-only file or file system
</DL>
<DL><DT><B>MPI_ERR_UNSUPPORTED_DATAREP </B> <DD> Unsupported datarep passed to
<tt>MPI_FILE_SET_VIEW
</tt>
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid info argument
</DL>
<DL><DT><B>MPI_ERR_INFO_KEY </B> <DD> Key longer than MPI_MAX_INFO_KEY
</DL>
<DL><DT><B>MPI_ERR_INFO_VALUE </B> <DD> Value longer than MPI_MAX_INFO_VAL
</DL>
<DL><DT><B>MPI_ERR_INFO_NOKEY </B> <DD> Invalid key passed to MPI_INFO_DELETE
</DL>
<DL><DT><B>MPI_ERR_NAME </B> <DD> Invalid service name passed to MPI_LOOKUP_NAME
</DL>
<DL><DT><B>MPI_ERR_NO_MEM </B> <DD> Alloc_mem could not allocate memory
</DL>
<DL><DT><B>MPI_ERR_NOT_SAME </B> <DD> Collective argument not identical on all
processes, or collective routines called in a different order by different
processes
</DL>
<DL><DT><B>MPI_ERR_PORT </B> <DD> Invalid port name passed to MPI_COMM_CONNECT
</DL>
<DL><DT><B>MPI_ERR_QUOTA </B> <DD> Quota exceeded
</DL>
<DL><DT><B>MPI_ERR_SERVICE </B> <DD> Invalid service name passed to MPI_UNPUBLISH_NAME
</DL>
<DL><DT><B>MPI_ERR_SPAWN </B> <DD> Error in spawning processes
</DL>
<DL><DT><B>MPI_ERR_UNSUPPORTED_OPERATION </B> <DD> Unsupported operation, such as seeking on
a file which supports sequential access only
</DL>
<DL><DT><B>MPI_ERR_WIN </B> <DD> Invalid win argument
</DL>
<DL><DT><B>MPI_ERR_BASE </B> <DD> Invalid base passed to MPI_FREE_MEM
</DL>
<DL><DT><B>MPI_ERR_LOCKTYPE </B> <DD> Invalid locktype argument
</DL>
<DL><DT><B>MPI_ERR_KEYVAL </B> <DD> Erroneous attribute key
</DL>
<DL><DT><B>MPI_ERR_RMA_CONFLICT </B> <DD> Conflicting accesses to window
</DL>
<DL><DT><B>MPI_ERR_RMA_SYNC </B> <DD> Wrong synchronization of RMA calls
</DL>
<DL><DT><B>MPI_ERR_SIZE </B> <DD> Invalid size argument
</DL>
<DL><DT><B>MPI_ERR_DISP </B> <DD> Invalid disp argument
</DL>
<DL><DT><B>MPI_ERR_ASSERT </B> <DD> Invalid assert argument
</DL>
<DL><DT><B>MPI_ERR_RMA_RANGE </B> <DD> Target memory is not part of the window (in
the case of a window created with MPI_WIN_CREATE_DYNAMIC, target memory is
not attached)
</DL>
<DL><DT><B>MPI_ERR_RMA_ATTACH </B> <DD> Memory cannot be attached (e.g., because of
resource exhaustion)
</DL>
<DL><DT><B>MPI_ERR_RMA_SHARED </B> <DD> Memory cannot be shared (e.g., some process in
the group of the specified communicator cannot expose shared memory)
</DL>
<DL><DT><B>MPI_ERR_RMA_FLAVOR </B> <DD> Passed window has the wrong flavor for the
called function
</DL>
<DL><DT><B>MPI_ERR_LASTCODE </B> <DD> Last error code -- always at end
</DL>
</DL>
<P>
<H2>Error codes for MPI_T</H2>
<P>
MPI_T_ERR_MEMORY - Out of memory
<DL><DT><B>MPI_T_ERR_NOT_INITIALIZED </B> <DD> Interface not initialized
</DL>
<DL><DT><B>MPI_T_ERR_CANNOT_INIT </B> <DD> Interface not in the state to be initialized
</DL>
<DL><DT><B>MPI_T_ERR_INVALID_INDEX </B> <DD> The index is invalid or has been deleted
</DL>
<DL><DT><B>MPI_T_ERR_INVALID_ITEM </B> <DD> Item index queried is out of range
</DL>
<DL><DT><B>MPI_T_ERR_INVALID_HANDLE </B> <DD> The handle is invalid
</DL>
<DL><DT><B>MPI_T_ERR_OUT_OF_HANDLES </B> <DD> No more handles available
</DL>
<DL><DT><B>MPI_T_ERR_OUT_OF_SESSIONS </B> <DD> No more sessions available
</DL>
<DL><DT><B>MPI_T_ERR_INVALID_SESSION </B> <DD> Session argument is not valid
</DL>
<DL><DT><B>MPI_T_ERR_CVAR_SET_NOT_NOW </B> <DD> Cvar can't be set at this moment
</DL>
<DL><DT><B>MPI_T_ERR_CVAR_SET_NEVER </B> <DD> Cvar can't be set until end of execution
</DL>
<DL><DT><B>MPI_T_ERR_PVAR_NO_STARTSTOP </B> <DD> Pvar can't be started or stopped
</DL>
<DL><DT><B>MPI_T_ERR_PVAR_NO_WRITE </B> <DD> Pvar can't be written or reset
</DL>
<DL><DT><B>MPI_T_ERR_PVAR_NO_ATOMIC </B> <DD> Pvar can't be R/W atomically
</DL>
<DL><DT><B>MPI_T_ERR_INVALID_NAME </B> <DD> Name doesn't match
</DL>
<DL><DT><B>MPI_T_ERR_INVALID </B> <DD> Invalid use of the interface or bad parameter
values(s)
</DL>
</DL>
<P>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPIX_Comm_agree</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPIX_Comm_agree"><H1>MPIX_Comm_agree</H1></A>
Performs agreement operation on comm
<H2>Synopsis</H2>
<PRE>
int MPIX_Comm_agree(MPI_Comm comm, int *flag)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> new communicator (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<P>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPIX_Comm_failure_ack</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPIX_Comm_failure_ack"><H1>MPIX_Comm_failure_ack</H1></A>
Acknowledge the current group of failed processes
<H2>Synopsis</H2>
<PRE>
int MPIX_Comm_failure_ack( MPI_Comm comm )
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator (handle)
</DL>
<P>
<H2>Notes</H2>
Because MPI specifies that null objects (e.g., <tt>MPI_COMM_NULL</tt>) are invalid
as input to MPI routines unless otherwise specified, using <tt>MPI_COMM_NULL
</tt>as input to this routine is an error.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,65 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPIX_Comm_failure_get_acked</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPIX_Comm_failure_get_acked"><H1>MPIX_Comm_failure_get_acked</H1></A>
Get the group of acknowledged failures.
<H2>Synopsis</H2>
<PRE>
int MPIX_Comm_failure_get_acked( MPI_Comm comm, MPI_Group *failedgrp )
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>failed_group </B> <DD> Group (handle)
</DL>
<P>
<H2>Notes</H2>
Because MPI specifies that null objects (e.g., <tt>MPI_COMM_NULL</tt>) are invalid
as input to MPI routines unless otherwise specified, using <tt>MPI_COMM_NULL
</tt>as input to this routine is an error.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,50 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPIX_Comm_revoke</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPIX_Comm_revoke"><H1>MPIX_Comm_revoke</H1></A>
Prevent a communicator from being used in the future
<H2>Synopsis</H2>
<PRE>
int MPIX_Comm_revoke(MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator to revoke
</DL>
<P>
<H2>Notes</H2>
Asynchronously notifies all MPI processes associated with the communicator <tt>comm</tt>.
This will be manifest by returning the MPIX_ERR_REVOKED during a subsequent MPI
call.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPIX_Comm_shrink</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPIX_Comm_shrink"><H1>MPIX_Comm_shrink</H1></A>
Creates a new communitor from an existing communicator while excluding failed processes
<H2>Synopsis</H2>
<PRE>
int MPIX_Comm_shrink(MPI_Comm comm, MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> new communicator (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<P>
</BODY></HTML>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Abort</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Abort"><H1>MPI_Abort</H1></A>
Terminates MPI execution environment
<H2>Synopsis</H2>
<PRE>
int MPI_Abort(MPI_Comm comm, int errorcode)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator of tasks to abort
<DT><B>errorcode </B><DD>error code to return to invoking environment
</DL>
<P>
<H2>Notes</H2>
Terminates all MPI processes associated with the communicator <tt>comm</tt>; in
most systems (all to date), terminates <em>all</em> processes.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
The user is responsible for ensuring that multiple threads do not try to
update the same MPI object from different threads. This routine should
not be used from within a signal handler.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
Because the <tt>MPI_Abort</tt> routine is intended to ensure that an MPI
process (and possibly an entire job), it cannot wait for a thread to
release a lock or other mechanism for atomic access.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,90 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Accumulate</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Accumulate"><H1>MPI_Accumulate</H1></A>
Accumulate data into the target process using remote memory access
<H2>Synopsis</H2>
<PRE>
int MPI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype
origin_datatype, int target_rank, MPI_Aint
target_disp, int target_count, MPI_Datatype
target_datatype, MPI_Op op, MPI_Win win)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>origin_addr </B><DD>initial address of buffer (choice)
<DT><B>origin_count </B><DD>number of entries in buffer (nonnegative integer)
<DT><B>origin_datatype </B><DD>datatype of each buffer entry (handle)
<DT><B>target_rank </B><DD>rank of target (nonnegative integer)
<DT><B>target_disp </B><DD>displacement from start of window to beginning of target
buffer (nonnegative integer)
<DT><B>target_count </B><DD>number of entries in target buffer (nonnegative integer)
<DT><B>target_datatype </B><DD>datatype of each entry in target buffer (handle)
<DT><B>op </B><DD>predefined reduce operation (handle)
<DT><B>win </B><DD>window object (handle)
</DL>
<P>
<H2>Notes</H2>
The basic components of both the origin and target datatype must be the same
predefined datatype (e.g., all <tt>MPI_INT</tt> or all <tt>MPI_DOUBLE_PRECISION</tt>).
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_WIN </B> <DD> Invalid MPI window object
</DL>
<P>
<H0>See Also</H0>
MPI_Raccumulate
<br>
</BODY></HTML>

View File

@@ -0,0 +1,56 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Add_error_class</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Add_error_class"><H1>MPI_Add_error_class</H1></A>
Add an MPI error class to the known classes
<H2>Synopsis</H2>
<PRE>
int MPI_Add_error_class(int *errorclass)
</PRE>
<H2>Output Parameters</H2>
<DL><DT><B>errorclass </B> <DD> New error class
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,60 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Add_error_code</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Add_error_code"><H1>MPI_Add_error_code</H1></A>
Add an MPI error code to an MPI error class
<H2>Synopsis</H2>
<PRE>
int MPI_Add_error_code(int errorclass, int *errorcode)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>errorclass </B> <DD> Error class to add an error code.
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>errorcode </B> <DD> New error code for this error class.
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Add_error_string</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Add_error_string"><H1>MPI_Add_error_string</H1></A>
Associates an error string with an MPI error code or class
<H2>Synopsis</H2>
<PRE>
int MPI_Add_error_string(int errorcode, const char *string)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>errorcode </B><DD>error code or class (integer)
<DT><B>string </B><DD>text corresponding to errorcode (string)
</DL>
<P>
<H2>Notes</H2>
The string must be no more than <tt>MPI_MAX_ERROR_STRING</tt> characters long.
The length of the string is as defined in the calling language.
The length of the string does not include the null terminator in C or C++.
Note that the string is <tt>const</tt> even though the MPI standard does not
specify it that way.
<P>
According to the MPI-2 standard, it is erroneous to call <tt>MPI_Add_error_string
</tt>for an error code or class with a value less than or equal
to <tt>MPI_ERR_LASTCODE</tt>. Thus, you cannot replace the predefined error messages
with this routine.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Address</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Address"><H1>MPI_Address</H1></A>
Gets the address of a location in memory
<H2>Synopsis</H2>
<PRE>
int MPI_Address(void *location, MPI_Aint *address)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>location </B> <DD> location in caller memory (choice)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>address </B> <DD> address of location (address integer)
</DL>
<P>
<H2>Note</H2>
This routine is provided for both the Fortran and C programmers.
On many systems, the address returned by this routine will be the same
as produced by the C <tt>&amp;</tt> operator, but this is not required in C and
may not be true of systems with word- rather than byte-oriented
instructions or systems with segmented address spaces.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Deprecated Function</H2>
The MPI-2 standard deprecated a number of routines because MPI-2 provides
better versions. This routine is one of those that was deprecated. The
routine may continue to be used, but new code should use the replacement
routine.
The replacement for this routine is <tt>MPI_Get_address</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,40 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Aint_add</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Aint_add"><H1>MPI_Aint_add</H1></A>
Returns the sum of base and disp
<H2>Synopsis</H2>
<PRE>
MPI_Aint MPI_Aint_add(MPI_Aint base, MPI_Aint disp)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>base </B><DD>base address (integer)
<DT><B>disp </B><DD>displacement (integer)
</DL>
<P>
<H2>Return value</H2>
Sum of the base and disp argument
<P>
<H2>Notes</H2>
MPI_Aint_Add produces a new MPI_Aint value that is equivalent to the sum of the
base and disp arguments, where base represents a base address returned by a call
to MPI_GET_ADDRESS and disp represents a signed integer displacement. The resulting
address is valid only at the process that generated base, and it must correspond
to a location in the same object referenced by base. The addition is performed in
a manner that results in the correct MPI_Aint representation of the output address,
as if the process that originally produced base had called:
<PRE>
MPI_Get_address((char *) base + disp, &amp;result)
</PRE>
<P>
<H0>See Also</H0>
MPI_Aint_diff
<br>
</BODY></HTML>

View File

@@ -0,0 +1,41 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Aint_diff</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Aint_diff"><H1>MPI_Aint_diff</H1></A>
Returns the difference between addr1 and addr2
<H2>Synopsis</H2>
<PRE>
MPI_Aint MPI_Aint_diff(MPI_Aint addr1, MPI_Aint addr2)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>addr1 </B><DD>minuend address (integer)
<DT><B>addr2 </B><DD>subtrahend address (integer)
</DL>
<P>
<H2>Return value</H2>
Difference between addr1 and addr2
<P>
<H2>Notes</H2>
MPI_Aint_diff produces a new MPI_Aint value that is equivalent to the difference
between addr1 and addr2 arguments, where addr1 and addr2 represent addresses
returned by calls to MPI_GET_ADDRESS. The resulting address is valid only at the
process that generated addr1 and addr2, and addr1 and addr2 must correspond to
locations in the same object in the same process. The difference is calculated
in a manner that results the signed difference from addr1 to addr2, as if the
process that originally produced the addresses had called
<PRE>
(char *) addr1 - (char *) addr2
</PRE>
on the addresses initially passed to MPI_GET_ADDRESS.
<P>
<H0>See Also</H0>
MPI_Aint_add
<br>
</BODY></HTML>

View File

@@ -0,0 +1,107 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Allgather</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Allgather"><H1>MPI_Allgather</H1></A>
Gathers data from all tasks and distribute the combined data to all tasks
<H2>Synopsis</H2>
<PRE>
int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>sendcount </B><DD>number of elements in send buffer (integer)
<DT><B>sendtype </B><DD>data type of send buffer elements (handle)
<DT><B>recvcount </B><DD>number of elements received from any process (integer)
<DT><B>recvtype </B><DD>data type of receive buffer elements (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> address of receive buffer (choice)
</DL>
<P>
<H2>Notes</H2>
The MPI standard (1.0 and 1.1) says that
<br>
<P>
<br>
<P>
The jth block of data sent from each process is received by every process
and placed in the jth block of the buffer <tt>recvbuf</tt>.
<br>
<P>
<br>
<P>
This is misleading; a better description is
<br>
<P>
<br>
<P>
The block of data sent from the jth process is received by every
process and placed in the jth block of the buffer <tt>recvbuf</tt>.
<br>
<P>
<br>
<P>
This text was suggested by Rajeev Thakur and has been adopted as a
clarification by the MPI Forum.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Allgatherv</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Allgatherv"><H1>MPI_Allgatherv</H1></A>
Gathers data from all tasks and deliver the combined data to all tasks
<H2>Synopsis</H2>
<PRE>
int MPI_Allgatherv(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, const int *recvcounts, const int *displs,
MPI_Datatype recvtype, MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>sendcount </B><DD>number of elements in send buffer (integer)
<DT><B>sendtype </B><DD>data type of send buffer elements (handle)
<DT><B>recvcounts </B><DD>integer array (of length group size)
containing the number of elements that are to be received from each process
<DT><B>displs </B><DD>integer array (of length group size). Entry
<tt>i</tt> specifies the displacement (relative to recvbuf ) at
which to place the incoming data from process <tt>i</tt>
<DT><B>recvtype </B><DD>data type of receive buffer elements (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> address of receive buffer (choice)
</DL>
<P>
<H2>Notes</H2>
The MPI standard (1.0 and 1.1) says that
<br>
<P>
<br>
<P>
The jth block of data sent from
each process is received by every process and placed in the jth block of the
buffer <tt>recvbuf</tt>.
<br>
<P>
<br>
<P>
This is misleading; a better description is
<br>
<P>
<br>
<P>
The block of data sent from the jth process is received by every
process and placed in the jth block of the buffer <tt>recvbuf</tt>.
<br>
<P>
<br>
<P>
This text was suggested by Rajeev Thakur, and has been adopted as a
clarification to the MPI standard by the MPI-Forum.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Alloc_mem</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Alloc_mem"><H1>MPI_Alloc_mem</H1></A>
Allocate memory for message passing and RMA
<H2>Synopsis</H2>
<PRE>
int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, void *baseptr)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>size </B><DD>size of memory segment in bytes (nonnegative integer)
<DT><B>info </B><DD>info argument (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>baseptr </B> <DD> pointer to beginning of memory segment allocated
</DL>
<P>
<H2>Notes</H2>
Using this routine from Fortran requires that the Fortran compiler accept
a common pointer extension. See Section 4.11 (Memory Allocation) in the
MPI-2 standard for more information and examples.
<P>
Also note that while <tt>baseptr</tt> is a <tt>void *</tt> type, this is
simply to allow easy use of any pointer object for this parameter.
In fact, this argument is really a <tt>void **</tt> type, that is, a
pointer to a pointer.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_NO_MEM </B> <DD> Insufficient memory available for allocation by
<tt>MPI_Alloc_mem
</tt>
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Allreduce</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Allreduce"><H1>MPI_Allreduce</H1></A>
Combines values from all processes and distributes the result back to all processes
<H2>Synopsis</H2>
<PRE>
int MPI_Allreduce(const void *sendbuf, void *recvbuf, int count,
MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>count </B><DD>number of elements in send buffer (integer)
<DT><B>datatype </B><DD>data type of elements of send buffer (handle)
<DT><B>op </B><DD>operation (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> starting address of receive buffer (choice)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Notes on collective operations</H2>
<P>
The reduction functions (<tt>MPI_Op</tt>) do not return an error value. As a result,
if the functions detect an error, all they can do is either call <tt>MPI_Abort
</tt>or silently skip the problem. Thus, if you change the error handler from
<tt>MPI_ERRORS_ARE_FATAL</tt> to something else, for example, <tt>MPI_ERRORS_RETURN</tt>,
then no error may be indicated.
<P>
The reason for this is the performance problems in ensuring that
all collective routines return the same error value.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_OP </B> <DD> Invalid operation. MPI operations (objects of type <tt>MPI_Op</tt>)
must either be one of the predefined operations (e.g., <tt>MPI_SUM</tt>) or
created with <tt>MPI_Op_create</tt>.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,81 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Alltoall</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Alltoall"><H1>MPI_Alltoall</H1></A>
Sends data from all to all processes
<H2>Synopsis</H2>
<PRE>
int MPI_Alltoall(const void *sendbuf, int sendcount, MPI_Datatype sendtype,
void *recvbuf, int recvcount, MPI_Datatype recvtype,
MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>sendcount </B><DD>number of elements to send to each process (integer)
<DT><B>sendtype </B><DD>data type of send buffer elements (handle)
<DT><B>recvcount </B><DD>number of elements received from any process (integer)
<DT><B>recvtype </B><DD>data type of receive buffer elements (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> address of receive buffer (choice)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Alltoallv</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Alltoallv"><H1>MPI_Alltoallv</H1></A>
Sends data from all to all processes; each process may send a different amount of data and provide displacements for the input and output data.
<H2>Synopsis</H2>
<PRE>
int MPI_Alltoallv(const void *sendbuf, const int *sendcounts,
const int *sdispls, MPI_Datatype sendtype, void *recvbuf,
const int *recvcounts, const int *rdispls, MPI_Datatype recvtype,
MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>sendcounts </B><DD>integer array equal to the group size
specifying the number of elements to send to each processor
<DT><B>sdispls </B><DD>integer array (of length group size). Entry
<tt>j</tt> specifies the displacement (relative to sendbuf from
which to take the outgoing data destined for process <tt>j</tt>
<DT><B>sendtype </B><DD>data type of send buffer elements (handle)
<DT><B>recvcounts </B><DD>integer array equal to the group size
specifying the maximum number of elements that can be received from
each processor
<DT><B>rdispls </B><DD>integer array (of length group size). Entry
<tt>i</tt> specifies the displacement (relative to recvbuf at
which to place the incoming data from process <tt>i</tt>
<DT><B>recvtype </B><DD>data type of receive buffer elements (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> address of receive buffer (choice)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,96 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Alltoallw</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Alltoallw"><H1>MPI_Alltoallw</H1></A>
Generalized all-to-all communication allowing different datatypes, counts, and displacements for each partner
<H2>Synopsis</H2>
<PRE>
int MPI_Alltoallw(const void *sendbuf, const int sendcounts[],
const int sdispls[], const MPI_Datatype sendtypes[],
void *recvbuf, const int recvcounts[], const int rdispls[],
const MPI_Datatype recvtypes[], MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>sendcounts </B><DD>integer array equal to the group size specifying the number of
elements to send to each processor (integer)
<DT><B>sdispls </B><DD>integer array (of length group size). Entry j specifies the
displacement in bytes (relative to sendbuf) from which to take the outgoing
data destined for process j
<DT><B>sendtypes </B><DD>array of datatypes (of length group size). Entry j specifies the
type of data to send to process j (handle)
<DT><B>recvcounts </B><DD>integer array equal to the group size specifying the number of
elements that can be received from each processor (integer)
<DT><B>rdispls </B><DD>integer array (of length group size). Entry i specifies the
displacement in bytes (relative to recvbuf) at which to place the incoming
data from process i
<DT><B>recvtypes </B><DD>array of datatypes (of length group size). Entry i specifies
the type of data received from process i (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> address of receive buffer (choice)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Attr_delete</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Attr_delete"><H1>MPI_Attr_delete</H1></A>
Deletes an attribute value associated with a key on a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Attr_delete(MPI_Comm comm, int keyval)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to which attribute is attached (handle)
<DT><B>keyval </B><DD>The key value of the deleted attribute (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Deprecated Function</H2>
The MPI-2 standard deprecated a number of routines because MPI-2 provides
better versions. This routine is one of those that was deprecated. The
routine may continue to be used, but new code should use the replacement
routine.
The replacement for this routine is <tt>MPI_Comm_delete_attr</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> This error class is associated with an error code that
indicates that an attempt was made to free one of the permanent keys.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Attr_get</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Attr_get"><H1>MPI_Attr_get</H1></A>
Retrieves attribute value by key
<H2>Synopsis</H2>
<PRE>
int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to which attribute is attached (handle)
<DT><B>keyval </B><DD>key value (integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>attribute_val </B><DD>attribute value, unless <tt>flag</tt> = false
<DT><B>flag </B><DD>true if an attribute value was extracted; false if no attribute is
associated with the key
</DL>
<P>
<H2>Notes</H2>
Attributes must be extracted from the same language as they were inserted
in with <tt>MPI_ATTR_PUT</tt>. The notes for C and Fortran below explain why.
<P>
<H2>Notes for C</H2>
Even though the <tt>attribute_val</tt> argument is declared as <tt>void *</tt>, it is
really the address of a void pointer (i.e., a <tt>void **</tt>). Using
a <tt>void *</tt>, however, is more in keeping with C idiom and allows the
pointer to be passed without additional casts.
<P>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Deprecated Function</H2>
The MPI-2 standard deprecated a number of routines because MPI-2 provides
better versions. This routine is one of those that was deprecated. The
routine may continue to be used, but new code should use the replacement
routine.
The replacement for this routine is <tt>MPI_Comm_get_attr</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
The <tt>attribute_val</tt> in Fortran is a pointer to a Fortran integer, not
a pointer to a <tt>void *</tt>.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_KEYVAL </B> <DD> Invalid keyval
</DL>
<P>
<H0>See Also</H0>
MPI_Attr_put, MPI_Keyval_create, MPI_Attr_delete, MPI_Comm_get_attr
<br>
</BODY></HTML>

View File

@@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Attr_put</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Attr_put"><H1>MPI_Attr_put</H1></A>
Stores attribute value associated with a key
<H2>Synopsis</H2>
<PRE>
int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to which attribute will be attached (handle)
<DT><B>keyval </B><DD>key value, as returned by <tt>MPI_KEYVAL_CREATE</tt> (integer)
<DT><B>attribute_val </B><DD>attribute value
</DL>
<P>
<H2>Notes</H2>
Values of the permanent attributes <tt>MPI_TAG_UB</tt>, <tt>MPI_HOST</tt>, <tt>MPI_IO</tt>,
<tt>MPI_WTIME_IS_GLOBAL</tt>, <tt>MPI_UNIVERSE_SIZE</tt>, <tt>MPI_LASTUSEDCODE</tt>, and
<tt>MPI_APPNUM</tt> may not be changed.
<P>
The type of the attribute value depends on whether C, C++, or Fortran
is being used.
In C and C++, an attribute value is a pointer (<tt>void *</tt>); in Fortran,
it is a single
integer (<em>not</em> a pointer, since Fortran has no pointers and there are systems
for which a pointer does not fit in an integer (e.g., any &gt; 32 bit address
system that uses 64 bits for Fortran <tt>DOUBLE PRECISION</tt>).
<P>
If an attribute is already present, the delete function (specified when the
corresponding keyval was created) will be called.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Deprecated Function</H2>
The MPI-2 standard deprecated a number of routines because MPI-2 provides
better versions. This routine is one of those that was deprecated. The
routine may continue to be used, but new code should use the replacement
routine.
The replacement for this routine is <tt>MPI_Comm_set_attr</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_KEYVAL </B> <DD> Invalid keyval
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> This error class is associated with an error code that
indicates that an attempt was made to free one of the permanent keys.
</DL>
<P>
<H0>See Also</H0>
MPI_Attr_get, MPI_Keyval_create, MPI_Attr_delete, MPI_Comm_set_attr
<br>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Barrier</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Barrier"><H1>MPI_Barrier</H1></A>
Blocks until all processes in the communicator have reached this routine.
<H2>Synopsis</H2>
<PRE>
int MPI_Barrier( MPI_Comm comm )
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Notes</H2>
Blocks the caller until all processes in the communicator have called it;
that is, the call returns at any process only after all members of the
communicator have entered the call.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,82 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Bcast</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Bcast"><H1>MPI_Bcast</H1></A>
Broadcasts a message from the process with rank "root" to all other processes of the communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Bcast( void *buffer, int count, MPI_Datatype datatype, int root,
MPI_Comm comm )
</PRE>
<H2>Input/Output Parameters</H2>
<DL><DT><B>buffer </B> <DD> starting address of buffer (choice)
</DL>
<P>
<H2>Input Parameters</H2>
<DL>
<DT><B>count </B><DD>number of entries in buffer (integer)
<DT><B>datatype </B><DD>data type of buffer (handle)
<DT><B>root </B><DD>rank of broadcast root (integer)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
<DL><DT><B>MPI_ERR_ROOT </B> <DD> Invalid root. The root must be specified as a rank in the
communicator. Ranks must be between zero and the size of the communicator
minus one.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,119 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Bsend</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Bsend"><H1>MPI_Bsend</H1></A>
Basic send with user-provided buffering
<H2>Synopsis</H2>
<PRE>
int MPI_Bsend(const void *buf, int count, MPI_Datatype datatype, int dest, int tag,
MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>buf </B><DD>initial address of send buffer (choice)
<DT><B>count </B><DD>number of elements in send buffer (nonnegative integer)
<DT><B>datatype </B><DD>datatype of each send buffer element (handle)
<DT><B>dest </B><DD>rank of destination (integer)
<DT><B>tag </B><DD>message tag (integer)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Notes</H2>
This send is provided as a convenience function; it allows the user to
send messages without worring about where they are buffered (because the
user <em>must</em> have provided buffer space with <tt>MPI_Buffer_attach</tt>).
<P>
In deciding how much buffer space to allocate, remember that the buffer space
is not available for reuse by subsequent <tt>MPI_Bsend</tt>s unless you are certain
that the message
has been received (not just that it should have been received). For example,
this code does not allocate enough buffer space
<PRE>
MPI_Buffer_attach( b, n*sizeof(double) + MPI_BSEND_OVERHEAD );
for (i=0; i&lt;m; i++) {
MPI_Bsend( buf, n, MPI_DOUBLE, ... );
}
</PRE>
because only enough buffer space is provided for a single send, and the
loop may start a second <tt>MPI_Bsend</tt> before the first is done making use of the
buffer.
<P>
In C, you can
force the messages to be delivered by
<PRE>
MPI_Buffer_detach( &amp;b, &amp;n );
MPI_Buffer_attach( b, n );
</PRE>
(The <tt>MPI_Buffer_detach</tt> will not complete until all buffered messages are
delivered.)
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument. Tags must be non-negative; tags
in a receive (<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may
also be <tt>MPI_ANY_TAG</tt>. The largest tag value is available through the
the attribute <tt>MPI_TAG_UB</tt>.
</DL>
<P>
<H0>See Also</H0>
MPI_Buffer_attach, MPI_Ibsend, MPI_Bsend_init
<br>
</BODY></HTML>

View File

@@ -0,0 +1,92 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Bsend_init</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Bsend_init"><H1>MPI_Bsend_init</H1></A>
Builds a handle for a buffered send
<H2>Synopsis</H2>
<PRE>
int MPI_Bsend_init(const void *buf, int count, MPI_Datatype datatype,
int dest, int tag, MPI_Comm comm, MPI_Request *request)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>buf </B><DD>initial address of send buffer (choice)
<DT><B>count </B><DD>number of elements sent (integer)
<DT><B>datatype </B><DD>type of each element (handle)
<DT><B>dest </B><DD>rank of destination (integer)
<DT><B>tag </B><DD>message tag (integer)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>request </B> <DD> communication request (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument. Tags must be non-negative; tags
in a receive (<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may
also be <tt>MPI_ANY_TAG</tt>. The largest tag value is available through the
the attribute <tt>MPI_TAG_UB</tt>.
</DL>
<P>
<H0>See Also</H0>
MPI_Buffer_attach
<br>
</BODY></HTML>

View File

@@ -0,0 +1,98 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Buffer_attach</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Buffer_attach"><H1>MPI_Buffer_attach</H1></A>
Attaches a user-provided buffer for sending
<H2>Synopsis</H2>
<PRE>
int MPI_Buffer_attach(void *buffer, int size)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>buffer </B><DD>initial buffer address (choice)
<DT><B>size </B><DD>buffer size, in bytes (integer)
</DL>
<P>
<H2>Notes</H2>
The size given should be the sum of the sizes of all outstanding Bsends that
you intend to have, plus <tt>MPI_BSEND_OVERHEAD</tt> for each Bsend that you do.
For the purposes of calculating size, you should use <tt>MPI_Pack_size</tt>.
In other words, in the code
<PRE>
MPI_Buffer_attach( buffer, size );
MPI_Bsend( ..., count=20, datatype=type1, ... );
...
MPI_Bsend( ..., count=40, datatype=type2, ... );
</PRE>
the value of <tt>size</tt> in the <tt>MPI_Buffer_attach</tt> call should be greater than
the value computed by
<PRE>
MPI_Pack_size( 20, type1, comm, &amp;s1 );
MPI_Pack_size( 40, type2, comm, &amp;s2 );
size = s1 + s2 + 2 * MPI_BSEND_OVERHEAD;
</PRE>
The <tt>MPI_BSEND_OVERHEAD</tt> gives the maximum amount of space that may be used in
the buffer for use by the BSEND routines in using the buffer. This value
is in <tt>mpi.h</tt> (for C) and <tt>mpif.h</tt> (for Fortran).
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
The user is responsible for ensuring that multiple threads do not try to
update the same MPI object from different threads. This routine should
not be used from within a signal handler.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
Because the buffer for buffered sends (e.g., <tt>MPI_Bsend</tt>) is shared by all
threads in a process, the user is responsible for ensuring that only
one thread at a time calls this routine or <tt>MPI_Buffer_detach</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> An internal error has been detected. This is fatal.
Please send a bug report to <tt>mpi-bugs@mcs.anl.gov</tt>.
</DL>
<P>
<H0>See Also</H0>
MPI_Buffer_detach, MPI_Bsend
<br>
</BODY></HTML>

View File

@@ -0,0 +1,96 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Buffer_detach</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Buffer_detach"><H1>MPI_Buffer_detach</H1></A>
Removes an existing buffer (for use in MPI_Bsend etc)
<H2>Synopsis</H2>
<PRE>
int MPI_Buffer_detach(void *buffer_addr, int *size)
</PRE>
<H2>Output Parameters</H2>
<DL>
<DT><B>buffer_addr </B><DD>initial buffer address (choice)
<DT><B>size </B><DD>buffer size, in bytes (integer)
</DL>
<P>
<H2>Notes</H2>
The reason that <tt>MPI_Buffer_detach</tt> returns the address and size of the
buffer being detached is to allow nested libraries to replace and restore
the buffer. For example, consider
<P>
<PRE>
int size, mysize, idummy;
void *ptr, *myptr, *dummy;
MPI_Buffer_detach( &amp;ptr, &amp;size );
MPI_Buffer_attach( myptr, mysize );
...
... library code ...
...
MPI_Buffer_detach( &amp;dummy, &amp;idummy );
MPI_Buffer_attach( ptr, size );
</PRE>
<P>
This is much like the action of the Unix signal routine and has the same
strengths (it is simple) and weaknesses (it only works for nested usages).
<P>
Note that for this approach to work, MPI_Buffer_detach must return MPI_SUCCESS
even when there is no buffer to detach. In that case, it returns a size of
zero. The MPI 1.1 standard for <tt>MPI_BUFFER_DETACH</tt> contains the text
<P>
<PRE>
The statements made in this section describe the behavior of MPI for
buffered-mode sends. When no buffer is currently associated, MPI behaves
as if a zero-sized buffer is associated with the process.
</PRE>
<P>
This could be read as applying only to the various Bsend routines. This
implementation takes the position that this applies to <tt>MPI_BUFFER_DETACH
</tt>as well.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
The user is responsible for ensuring that multiple threads do not try to
update the same MPI object from different threads. This routine should
not be used from within a signal handler.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
Because the buffer for buffered sends (e.g., <tt>MPI_Bsend</tt>) is shared by all
threads in a process, the user is responsible for ensuring that only
one thread at a time calls this routine or <tt>MPI_Buffer_attach</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
The Fortran binding for this routine is different. Because Fortran
does not have pointers, it is impossible to provide a way to use the
output of this routine to exchange buffers. In this case, only the
size field is set.
<P>
<H2>Notes for C</H2>
Even though the <tt>bufferptr</tt> argument is declared as <tt>void *</tt>, it is
really the address of a void pointer. See the rationale in the
standard for more details.
<P>
<H0>See Also</H0>
MPI_Buffer_attach
<br>
</BODY></HTML>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cancel</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cancel"><H1>MPI_Cancel</H1></A>
Cancels a communication request
<H2>Synopsis</H2>
<PRE>
int MPI_Cancel(MPI_Request *request)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>request </B> <DD> communication request (handle)
</DL>
<P>
<H2>Notes</H2>
The primary expected use of <tt>MPI_Cancel</tt> is in multi-buffering
schemes, where speculative <tt>MPI_Irecvs</tt> are made. When the computation
completes, some of these receive requests may remain; using <tt>MPI_Cancel</tt> allows
the user to cancel these unsatisfied requests.
<P>
Cancelling a send operation is much more difficult, in large part because the
send will usually be at least partially complete (the information on the tag,
size, and source are usually sent immediately to the destination).
Users are
advised that cancelling a send, while a local operation (as defined by the MPI
standard), is likely to be expensive (usually generating one or more internal
messages).
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Null Handles</H2>
The MPI 1.1 specification, in the section on opaque objects, explicitly
disallows freeing a null communicator. The text from the standard is:
<PRE>
A null handle argument is an erroneous IN argument in MPI calls, unless an
exception is explicitly stated in the text that defines the function. Such
exception is allowed for handles to request objects in Wait and Test calls
(sections Communication Completion and Multiple Completions ). Otherwise, a
null handle can only be passed to a function that allocates a new object and
returns a reference to it in the handle.
</PRE>
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_REQUEST </B> <DD> Invalid <tt>MPI_Request</tt>. Either null or, in the case of a
<tt>MPI_Start</tt> or <tt>MPI_Startall</tt>, not a persistent request.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_coords</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_coords"><H1>MPI_Cart_coords</H1></A>
Determines process coords in cartesian topology given rank in group
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[])
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with cartesian structure (handle)
<DT><B>rank </B><DD>rank of a process within group of <tt>comm</tt> (integer)
<DT><B>maxdims </B><DD>length of vector <tt>coords</tt> in the calling program (integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>coords </B> <DD> integer array (of size <tt>ndims</tt>) containing the Cartesian
coordinates of specified process (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology. Either there is no topology
associated with this communicator, or it is not the correct type (e.g.,
<tt>MPI_CART</tt> when expecting <tt>MPI_GRAPH</tt>).
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_DIMS </B> <DD> Invalid dimension argument. A dimension argument
is null or its length is less than or equal to zero.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,82 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_create</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_create"><H1>MPI_Cart_create</H1></A>
Makes a new communicator to which topology information has been attached
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_create(MPI_Comm comm_old, int ndims, const int dims[],
const int periods[], int reorder, MPI_Comm *comm_cart)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm_old </B><DD>input communicator (handle)
<DT><B>ndims </B><DD>number of dimensions of cartesian grid (integer)
<DT><B>dims </B><DD>integer array of size ndims specifying the number of processes in
each dimension
<DT><B>periods </B><DD>logical array of size ndims specifying whether the grid is
periodic (true) or not (false) in each dimension
<DT><B>reorder </B><DD>ranking may be reordered (true) or not (false) (logical)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>comm_cart </B> <DD> communicator with new cartesian topology (handle)
</DL>
<P>
<H2>Algorithm</H2>
We ignore <tt>reorder</tt> info currently.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology. Either there is no topology
associated with this communicator, or it is not the correct type (e.g.,
<tt>MPI_CART</tt> when expecting <tt>MPI_GRAPH</tt>).
</DL>
<DL><DT><B>MPI_ERR_DIMS </B> <DD> Invalid dimension argument. A dimension argument
is null or its length is less than or equal to zero.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_get</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_get"><H1>MPI_Cart_get</H1></A>
Retrieves Cartesian topology information associated with a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_get(MPI_Comm comm, int maxdims, int dims[], int periods[],
int coords[])
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with cartesian structure (handle)
<DT><B>maxdims </B><DD>length of vectors <tt>dims</tt>, <tt>periods</tt>, and <tt>coords
</tt>in the calling program (integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>dims </B><DD>number of processes for each cartesian dimension (array of integer)
<DT><B>periods </B><DD>periodicity (true/false) for each cartesian dimension
(array of logical)
<DT><B>coords </B><DD>coordinates of calling process in cartesian structure
(array of integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology. Either there is no topology
associated with this communicator, or it is not the correct type (e.g.,
<tt>MPI_CART</tt> when expecting <tt>MPI_GRAPH</tt>).
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_map</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_map"><H1>MPI_Cart_map</H1></A>
Maps process to Cartesian topology information
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_map(MPI_Comm comm, int ndims, const int dims[], const int periods[],
int *newrank)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>input communicator (handle)
<DT><B>ndims </B><DD>number of dimensions of Cartesian structure (integer)
<DT><B>dims </B><DD>integer array of size <tt>ndims</tt> specifying the number of processes in
each coordinate direction
<DT><B>periods </B><DD>logical array of size <tt>ndims</tt> specifying the periodicity
specification in each coordinate direction
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newrank </B> <DD> reordered rank of the calling process; <tt>MPI_UNDEFINED</tt> if
calling process does not belong to grid (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_DIMS </B> <DD> Invalid dimension argument. A dimension argument
is null or its length is less than or equal to zero.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,76 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_rank</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_rank"><H1>MPI_Cart_rank</H1></A>
Determines process rank in communicator given Cartesian location
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_rank(MPI_Comm comm, const int coords[], int *rank)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with cartesian structure (handle)
<DT><B>coords </B><DD>integer array (of size <tt>ndims</tt>, the number of dimensions of
the Cartesian topology associated with <tt>comm</tt>) specifying the cartesian
coordinates of a process
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>rank </B> <DD> rank of specified process (integer)
</DL>
<P>
<H2>Notes</H2>
Out-of-range coordinates are erroneous for non-periodic dimensions.
Versions of MPICH before 1.2.2 returned <tt>MPI_PROC_NULL</tt> for the rank in this
case.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology. Either there is no topology
associated with this communicator, or it is not the correct type (e.g.,
<tt>MPI_CART</tt> when expecting <tt>MPI_GRAPH</tt>).
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_shift</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_shift"><H1>MPI_Cart_shift</H1></A>
Returns the shifted source and destination ranks, given a shift direction and amount
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, int *rank_source,
int *rank_dest)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with cartesian structure (handle)
<DT><B>direction </B><DD>coordinate dimension of shift (integer)
<DT><B>disp </B><DD>displacement (&gt; 0: upwards shift, &lt; 0: downwards shift) (integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>rank_source </B><DD>rank of source process (integer)
<DT><B>rank_dest </B><DD>rank of destination process (integer)
</DL>
<P>
<H2>Notes</H2>
The <tt>direction</tt> argument is in the range <tt>[0,n-1]</tt> for an n-dimensional
Cartesian mesh.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology. Either there is no topology
associated with this communicator, or it is not the correct type (e.g.,
<tt>MPI_CART</tt> when expecting <tt>MPI_GRAPH</tt>).
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cart_sub</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cart_sub"><H1>MPI_Cart_sub</H1></A>
Partitions a communicator into subgroups which form lower-dimensional cartesian subgrids
<H2>Synopsis</H2>
<PRE>
int MPI_Cart_sub(MPI_Comm comm, const int remain_dims[], MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with cartesian structure (handle)
<DT><B>remain_dims </B><DD>the <tt>i</tt>th entry of remain_dims specifies whether the <tt>i</tt>th
dimension is kept in the subgrid (true) or is dropped (false) (logical
vector)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> communicator containing the subgrid that includes the calling
process (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TOPOLOGY </B> <DD> Invalid topology. Either there is no topology
associated with this communicator, or it is not the correct type (e.g.,
<tt>MPI_CART</tt> when expecting <tt>MPI_GRAPH</tt>).
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cartdim_get</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cartdim_get"><H1>MPI_Cartdim_get</H1></A>
Retrieves Cartesian topology information associated with a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Cartdim_get(MPI_Comm comm, int *ndims)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator with cartesian structure (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>ndims </B> <DD> number of dimensions of the cartesian structure (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,58 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Close_port</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Close_port"><H1>MPI_Close_port</H1></A>
close port
<H2>Synopsis</H2>
<PRE>
int MPI_Close_port(const char *port_name)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>port_name </B> <DD> a port name (string)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
The user is responsible for ensuring that multiple threads do not try to
update the same MPI object from different threads. This routine should
not be used from within a signal handler.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,70 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_accept</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_accept"><H1>MPI_Comm_accept</H1></A>
Accept a request to form a new intercommunicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_accept(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>port_name </B><DD>port name (string, used only on root)
<DT><B>info </B><DD>implementation-dependent information (handle, used only on root)
<DT><B>root </B><DD>rank in comm of root node (integer)
<DT><B>comm </B><DD>intracommunicator over which call is collective (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> intercommunicator with client as remote group (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,70 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_call_errhandler</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_call_errhandler"><H1>MPI_Comm_call_errhandler</H1></A>
Call the error handler installed on a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_call_errhandler(MPI_Comm comm, int errorcode)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with error handler (handle)
<DT><B>errorcode </B><DD>error code (integer)
</DL>
<P>
<H2>Note</H2>
Assuming the input parameters are valid, when the error handler is set to
MPI_ERRORS_RETURN, this routine will always return MPI_SUCCESS.
<P>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread and interrupt safe only if no MPI routine that
updates or frees the same MPI object may be called concurrently
with this routine.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
<P>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_compare</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_compare"><H1>MPI_Comm_compare</H1></A>
Compares two communicators
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm1 </B><DD>comm1 (handle)
<DT><B>comm2 </B><DD>comm2 (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>result </B> <DD> integer which is <tt>MPI_IDENT</tt> if the contexts and groups are the
same, <tt>MPI_CONGRUENT</tt> if different contexts but identical groups, <tt>MPI_SIMILAR
</tt>if different contexts but similar groups, and <tt>MPI_UNEQUAL</tt> otherwise
</DL>
<P>
<H2>Using 'MPI_COMM_NULL' with 'MPI_Comm_compare'</H2>
<P>
It is an error to use <tt>MPI_COMM_NULL</tt> as one of the arguments to
<tt>MPI_Comm_compare</tt>. The relevant sections of the MPI standard are
<P>
.(2.4.1 Opaque Objects)
A null handle argument is an erroneous <tt>IN</tt> argument in MPI calls, unless an
exception is explicitly stated in the text that defines the function.
<P>
.(5.4.1. Communicator Accessors)
where there is no text in <tt>MPI_COMM_COMPARE</tt> allowing a null handle.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
(To perform the communicator comparisions, this routine may need to
allocate some memory. Memory allocation is not interrupt-safe, and hence
this routine is only thread-safe.)
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_connect</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_connect"><H1>MPI_Comm_connect</H1></A>
Make a request to form a new intercommunicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_connect(const char *port_name, MPI_Info info, int root, MPI_Comm comm,
MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>port_name </B><DD>network address (string, used only on root)
<DT><B>info </B><DD>implementation-dependent information (handle, used only on root)
<DT><B>root </B><DD>rank in comm of root node (integer)
<DT><B>comm </B><DD>intracommunicator over which call is collective (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> intercommunicator with server as remote group (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_PORT </B> <DD>
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_create</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_create"><H1>MPI_Comm_create</H1></A>
Creates a new communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator (handle)
<DT><B>group </B><DD>group, which is a subset of the group of <tt>comm</tt> (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> new communicator (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_GROUP </B> <DD> Null or invalid group passed to function.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_free
<br>
</BODY></HTML>

View File

@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_create_errhandler</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_create_errhandler"><H1>MPI_Comm_create_errhandler</H1></A>
Create a communicator error handler
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_create_errhandler(MPI_Comm_errhandler_function *comm_errhandler_fn,
MPI_Errhandler *errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm_errhandler_fn </B> <DD> user defined error handling procedure (function)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>errhandler </B> <DD> MPI error handler (handle)
</DL>
<P>
<H2>Error Handler</H2>
The error handler function should be of the form
<P>
void MPI_Comm_errhandler_function(MPI_Comm *comm, int *rc);
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,71 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_create_group</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_create_group"><H1>MPI_Comm_create_group</H1></A>
Creates a new communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_create_group(MPI_Comm comm, MPI_Group group, int tag, MPI_Comm * newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator (handle)
<DT><B>group </B><DD>group, which is a subset of the group of <tt>comm</tt> (handle)
<DT><B>tag </B><DD>safe tag unused by other communication
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> new communicator (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_GROUP </B> <DD> Null or invalid group passed to function.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_free
<br>
</BODY></HTML>

View File

@@ -0,0 +1,94 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_create_keyval</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_create_keyval"><H1>MPI_Comm_create_keyval</H1></A>
Create a new attribute key
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn,
MPI_Comm_delete_attr_function *comm_delete_attr_fn,
int *comm_keyval, void *extra_state)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm_copy_attr_fn </B><DD>Copy callback function for <tt>keyval
</tt>
<DT><B>comm_delete_attr_fn </B><DD>Delete callback function for <tt>keyval
</tt>
<DT><B>extra_state </B><DD>Extra state for callback functions
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>comm_keyval </B> <DD> key value for future access (integer)
</DL>
<P>
<H2>Notes</H2>
Key values are global (available for any and all communicators).
<P>
Default copy and delete functions are available. These are
<DL>
<DT><B>MPI_COMM_NULL_COPY_FN </B><DD>empty copy function
<DT><B>MPI_COMM_NULL_DELETE_FN </B><DD>empty delete function
<DT><B>MPI_COMM_DUP_FN </B><DD>simple dup function
</DL>
<P>
There are subtle differences between C and Fortran that require that the
copy_fn be written in the same language from which <tt>MPI_Comm_create_keyval
</tt>is called.
This should not be a problem for most users; only programmers using both
Fortran and C in the same program need to be sure that they follow this rule.
<P>
<P>
<H2>Return value from attribute callbacks</H2>
The MPI-2 versions of the attribute callbacks should return either
<tt>MPI_SUCCESS</tt> on success or a valid MPI error code or class on failure.
The MPI standard is ambiguous on this point, but as MPI-2 provides
the routines <tt>MPI_Add_error_class</tt> and <tt>MPI_Add_error_code</tt> that allow the
user to define and use MPI error codes and classes.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_free_keyval
<br>
</BODY></HTML>

View File

@@ -0,0 +1,66 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_delete_attr</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_delete_attr"><H1>MPI_Comm_delete_attr</H1></A>
Deletes an attribute value associated with a key on a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to which attribute is attached (handle)
<DT><B>comm_keyval </B><DD>The key value of the deleted attribute (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> This error class is associated with an error code that
indicates that an attempt was made to free one of the permanent keys.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_set_attr, MPI_Comm_create_keyval
<br>
</BODY></HTML>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_disconnect</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_disconnect"><H1>MPI_Comm_disconnect</H1></A>
Disconnect from a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_disconnect(MPI_Comm * comm)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Notes</H2>
This routine waits for all pending communication to complete, then frees the
communicator and sets <tt>comm</tt> to <tt>MPI_COMM_NULL</tt>. It may not be called
with <tt>MPI_COMM_WORLD</tt> or <tt>MPI_COMM_SELF</tt>.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_connect, MPI_Comm_join
<br>
</BODY></HTML>

View File

@@ -0,0 +1,87 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_dup</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_dup"><H1>MPI_Comm_dup</H1></A>
Duplicates an existing communicator with all its cached information
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator to be duplicated (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> A new communicator over the same group as <tt>comm</tt> but with a new
context. See notes. (handle)
</DL>
<P>
<H2>Notes</H2>
This routine is used to create a new communicator that has a new
communication context but contains the same group of processes as
the input communicator. Since all MPI communication is performed
within a communicator (specifies as the group of processes <em>plus
</em>the context), this routine provides an effective way to create a
private communicator for use by a software module or library. In
particular, no library routine should use <tt>MPI_COMM_WORLD</tt> as the
communicator; instead, a duplicate of a user-specified communicator
should always be used. For more information, see Using MPI, 2nd
edition.
<P>
Because this routine essentially produces a copy of a communicator,
it also copies any attributes that have been defined on the input
communicator, using the attribute copy function specified by the
<tt>copy_function</tt> argument to <tt>MPI_Keyval_create</tt>. This is
particularly useful for (a) attributes that describe some property
of the group associated with the communicator, such as its
interconnection topology and (b) communicators that are given back
to the user; the attibutes in this case can track subsequent
<tt>MPI_Comm_dup</tt> operations on this communicator.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_free, MPI_Keyval_create, MPI_Attr_put, MPI_Attr_delete,
<br>MPI_Comm_create_keyval, MPI_Comm_set_attr, MPI_Comm_delete_attr
</BODY></HTML>

View File

@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_dup_with_info</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_dup_with_info"><H1>MPI_Comm_dup_with_info</H1></A>
Duplicates an existing communicator with all its cached information
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_dup_with_info(MPI_Comm comm, MPI_Info info, MPI_Comm * newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>Communicator to be duplicated (handle)
<DT><B>info </B><DD>info object (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> A new communicator over the same group as <tt>comm</tt> but with a new
context. See notes. (handle)
</DL>
<P>
<H2>Notes</H2>
MPI_COMM_DUP_WITH_INFO behaves exactly as MPI_COMM_DUP except that
the info hints associated with the communicator comm are not
duplicated in newcomm. The hints provided by the argument info are
associated with the output communicator newcomm instead.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_dup, MPI_Comm_free, MPI_Keyval_create,
<br>MPI_Attr_put, MPI_Attr_delete, MPI_Comm_create_keyval,
MPI_Comm_set_attr, MPI_Comm_delete_attr
</BODY></HTML>

View File

@@ -0,0 +1,79 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_free</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_free"><H1>MPI_Comm_free</H1></A>
Marks the communicator object for deallocation
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_free(MPI_Comm *comm)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator to be destroyed (handle)
</DL>
<P>
<H2>Notes</H2>
This routine <em>frees</em> a communicator. Because the communicator may still
be in use by other MPI routines, the actual communicator storage will not
be freed until all references to this communicator are removed. For most
users, the effect of this routine is the same as if it was in fact freed
at this time of this call.
<P>
<H2>Null Handles</H2>
The MPI 1.1 specification, in the section on opaque objects, explicitly
<H2>disallows freeing a null communicator. The text from the standard is</H2>
<PRE>
A null handle argument is an erroneous IN argument in MPI calls, unless an
exception is explicitly stated in the text that defines the function. Such
exception is allowed for handles to request objects in Wait and Test calls
(sections Communication Completion and Multiple Completions ). Otherwise, a
null handle can only be passed to a function that allocates a new object and
returns a reference to it in the handle.
</PRE>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_free_keyval</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_free_keyval"><H1>MPI_Comm_free_keyval</H1></A>
Frees an attribute key for communicators
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_free_keyval(int *comm_keyval)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm_keyval </B> <DD> Frees the integer key value (integer)
</DL>
<P>
<H2>Notes</H2>
Key values are global (they can be used with any and all communicators)
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> This error class is associated with an error code that
indicates that an attempt was made to free one of the permanent keys.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_get_attr</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_get_attr"><H1>MPI_Comm_get_attr</H1></A>
Retrieves attribute value by key
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val,
int *flag)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to which attribute is attached (handle)
<DT><B>comm_keyval </B><DD>key value (integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>attribute_val </B><DD>attribute value, unless <tt>flag</tt> = false
<DT><B>flag </B><DD>true if an attribute value was extracted; false if no attribute is
associated with the key
</DL>
<P>
<H2>Notes</H2>
Attributes must be extracted from the same language as they were inserted
in with <tt>MPI_Comm_set_attr</tt>. The notes for C and Fortran below explain
why.
<P>
<H2>Notes for C</H2>
Even though the <tt>attr_value</tt> argument is declared as <tt>void *</tt>, it is
really the address of a void pointer. See the rationale in the
standard for more details.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_KEYVAL </B> <DD> Invalid keyval
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,67 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_get_errhandler</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_get_errhandler"><H1>MPI_Comm_get_errhandler</H1></A>
Get the error handler attached to a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>errhandler </B> <DD> handler currently associated with communicator (handle)
</DL>
<P>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread and interrupt safe only if no MPI routine that
updates or frees the same MPI object may be called concurrently
with this routine.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
<P>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,64 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_get_info</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_get_info"><H1>MPI_Comm_get_info</H1></A>
Returns a new info object containing the hints of the communicator associated with comm. The current setting of all hints actually used by the system related to this communicator is returned in info_used. If no such hints exist, a handle to a newly created info object is returned that contains no key/value pair. The user is responsible for freeing info_used via MPI_INFO_FREE.
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_get_info(MPI_Comm comm, MPI_Info * info_used)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator object (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>info_used </B> <DD> new info argument (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,77 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_get_name</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_get_name"><H1>MPI_Comm_get_name</H1></A>
Return the print name from the communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator to get name of (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>comm_name </B><DD>On output, contains the name of the communicator. It must
be an array of size at least <tt>MPI_MAX_OBJECT_NAME</tt>.
<DT><B>resultlen </B><DD>Number of characters in name
</DL>
<P>
<H2>Notes</H2>
<P>
Because MPI specifies that null objects (e.g., <tt>MPI_COMM_NULL</tt>) are invalid
as input to MPI routines unless otherwise specified, using <tt>MPI_COMM_NULL
</tt>as input to this routine is an error.
<P>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread and interrupt safe only if no MPI routine that
updates or frees the same MPI object may be called concurrently
with this routine.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
<P>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_get_parent</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_get_parent"><H1>MPI_Comm_get_parent</H1></A>
Return the parent communicator for this process
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_get_parent(MPI_Comm *parent)
</PRE>
<H2>Output Parameters</H2>
<DL><DT><B>parent </B> <DD> the parent communicator (handle)
</DL>
<P>
<H2>Notes</H2>
<P>
If a process was started with <tt>MPI_Comm_spawn</tt> or <tt>MPI_Comm_spawn_multiple</tt>,
<tt>MPI_Comm_get_parent</tt> returns the parent intercommunicator of the current
process. This parent intercommunicator is created implicitly inside of
<tt>MPI_Init</tt> and is the same intercommunicator returned by <tt>MPI_Comm_spawn
</tt>in the parents.
<P>
If the process was not spawned, <tt>MPI_Comm_get_parent</tt> returns
<tt>MPI_COMM_NULL</tt>.
<P>
After the parent communicator is freed or disconnected, <tt>MPI_Comm_get_parent
</tt>returns <tt>MPI_COMM_NULL</tt>.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,65 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_group</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_group"><H1>MPI_Comm_group</H1></A>
Accesses the group associated with given communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_group(MPI_Comm comm, MPI_Group *group)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>group </B> <DD> Group in communicator (handle)
</DL>
<P>
<H2>Notes</H2>
Because MPI specifies that null objects (e.g., <tt>MPI_COMM_NULL</tt>) are invalid
as input to MPI routines unless otherwise specified, using <tt>MPI_COMM_NULL
</tt>as input to this routine is an error.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,58 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_idup</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_idup"><H1>MPI_Comm_idup</H1></A>
nonblocking communicator duplication
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_idup(MPI_Comm comm, MPI_Comm *newcomm, MPI_Request *request)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>newcomm </B><DD>copy of comm (handle)
<DT><B>request </B><DD>communication request (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
</BODY></HTML>

View File

@@ -0,0 +1,66 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_join</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_join"><H1>MPI_Comm_join</H1></A>
Create a communicator by joining two processes connected by a socket.
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_join(int fd, MPI_Comm *intercomm)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>fd </B> <DD> socket file descriptor
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>intercomm </B> <DD> new intercommunicator (handle)
</DL>
<P>
<H2>Notes</H2>
The socket must be quiescent before <tt>MPI_COMM_JOIN</tt> is called and after
<tt>MPI_COMM_JOIN</tt> returns. More specifically, on entry to <tt>MPI_COMM_JOIN</tt>, a
read on the socket will not read any data that was written to the socket
before the remote process called <tt>MPI_COMM_JOIN</tt>.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,58 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_rank</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_rank"><H1>MPI_Comm_rank</H1></A>
Determines the rank of the calling process in the communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_rank( MPI_Comm comm, int *rank )
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>rank </B> <DD> rank of the calling process in the group of <tt>comm</tt> (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,67 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_remote_group</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_remote_group"><H1>MPI_Comm_remote_group</H1></A>
Accesses the remote group associated with the given inter-communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> Communicator (must be an intercommunicator) (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>group </B> <DD> remote group of communicator (handle)
</DL>
<P>
<H2>Notes</H2>
The user is responsible for freeing the group when it is no longer needed.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<P>
<H0>See Also</H0>
MPI_Group_free
<br>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_remote_size</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_remote_size"><H1>MPI_Comm_remote_size</H1></A>
Determines the size of the remote group associated with an inter-communictor
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_remote_size(MPI_Comm comm, int *size)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>size </B> <DD> number of processes in the remote group of <tt>comm</tt> (integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,83 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_set_attr</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_set_attr"><H1>MPI_Comm_set_attr</H1></A>
Stores attribute value associated with a key
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to which attribute will be attached (handle)
<DT><B>comm_keyval </B><DD>key value, as returned by <tt>MPI_Comm_create_keyval</tt> (integer)
<DT><B>attribute_val </B><DD>attribute value
</DL>
<P>
<H2>Notes</H2>
Values of the permanent attributes <tt>MPI_TAG_UB</tt>, <tt>MPI_HOST</tt>, <tt>MPI_IO</tt>,
<tt>MPI_WTIME_IS_GLOBAL</tt>, <tt>MPI_UNIVERSE_SIZE</tt>, <tt>MPI_LASTUSEDCODE</tt>, and
<tt>MPI_APPNUM</tt> may not be changed.
<P>
The type of the attribute value depends on whether C, C++, or Fortran
is being used.
In C and C++, an attribute value is a pointer (<tt>void *</tt>); in Fortran, it is an
address-sized integer.
<P>
If an attribute is already present, the delete function (specified when the
corresponding keyval was created) will be called.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_KEYVAL </B> <DD> Invalid keyval
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> This error class is associated with an error code that
indicates that an attempt was made to free one of the permanent keys.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_create_keyval, MPI_Comm_delete_attr
<br>
</BODY></HTML>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_set_errhandler</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_set_errhandler"><H1>MPI_Comm_set_errhandler</H1></A>
Set the error handler for a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator (handle)
<DT><B>errhandler </B><DD>new error handler for communicator (handle)
</DL>
<P>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread and interrupt safe only if no MPI routine that
updates or frees the same MPI object may be called concurrently
with this routine.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
<P>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_get_errhandler, MPI_Comm_call_errhandler
<br>
</BODY></HTML>

View File

@@ -0,0 +1,63 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_set_info</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_set_info"><H1>MPI_Comm_set_info</H1></A>
Set new values for the hints of the communicator associated with comm. The call is collective on the group of comm. The info object may be different on each process, but any info entries that an implementation requires to be the same on all processes must appear with the same value in each process' info object.
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_set_info(MPI_Comm comm, MPI_Info info)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator object (handle)
<DT><B>info </B><DD>info argument (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,66 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_set_name</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_set_name"><H1>MPI_Comm_set_name</H1></A>
Sets the print name for a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_set_name(MPI_Comm comm, const char *comm_name)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to name (handle)
<DT><B>comm_name </B><DD>Name for communicator
</DL>
<P>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread and interrupt safe only if no MPI routine that
updates or frees the same MPI object may be called concurrently
with this routine.
<P>
The MPI standard defined a thread-safe interface but this does not
mean that all routines may be called without any thread locks. For
example, two threads must not attempt to change the contents of the
same <tt>MPI_Info</tt> object concurrently. The user is responsible in this
case for using some mechanism, such as thread locks, to ensure that
only one thread at a time makes use of this routine.
<P>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,76 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_size</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_size"><H1>MPI_Comm_size</H1></A>
Determines the size of the group associated with a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_size( MPI_Comm comm, int *size )
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>size </B> <DD> number of processes in the group of <tt>comm</tt> (integer)
</DL>
<P>
<H2>Notes</H2>
<P>
<H2>Null Handles</H2>
The MPI 1.1 specification, in the section on opaque objects, explicitly
disallows freeing a null communicator. The text from the standard is:
<PRE>
A null handle argument is an erroneous IN argument in MPI calls, unless an
exception is explicitly stated in the text that defines the function. Such
exception is allowed for handles to request objects in Wait and Test calls
(sections Communication Completion and Multiple Completions ). Otherwise, a
null handle can only be passed to a function that allocates a new object and
returns a reference to it in the handle.
</PRE>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_spawn</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_spawn"><H1>MPI_Comm_spawn</H1></A>
Spawn up to maxprocs instances of a single MPI application
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_spawn(const char *command, char *argv[], int maxprocs, MPI_Info info,
int root, MPI_Comm comm, MPI_Comm *intercomm,
int array_of_errcodes[])
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>command </B><DD>name of program to be spawned (string, significant only at root)
<DT><B>argv </B><DD>arguments to command (array of strings, significant only at root)
<DT><B>maxprocs </B><DD>maximum number of processes to start (integer, significant only
at root)
<DT><B>info </B><DD>a set of key-value pairs telling the runtime system where and how
to start the processes (handle, significant only at root)
<DT><B>root </B><DD>rank of process in which previous arguments are examined (integer)
<DT><B>comm </B><DD>intracommunicator containing group of spawning processes (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>intercomm </B><DD>intercommunicator between original group and the
newly spawned group (handle)
<DT><B>array_of_errcodes </B><DD>one code per process (array of integer)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_SPAWN </B> <DD>
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,84 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_spawn_multiple</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_spawn_multiple"><H1>MPI_Comm_spawn_multiple</H1></A>
short description
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_spawn_multiple(int count, char *array_of_commands[],
char **array_of_argv[], const int array_of_maxprocs[],
const MPI_Info array_of_info[], int root, MPI_Comm comm,
MPI_Comm *intercomm, int array_of_errcodes[])
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>count </B><DD>number of commands (positive integer, significant to MPI only at
root
<DT><B>array_of_commands </B><DD>programs to be executed (array of strings, significant
only at root)
<DT><B>array_of_argv </B><DD>arguments for commands (array of array of strings,
significant only at root)
<DT><B>array_of_maxprocs </B><DD>maximum number of processes to start for each command
(array of integer, significant only at root)
<DT><B>array_of_info </B><DD>info objects telling the runtime system where and how to
start processes (array of handles, significant only at root)
<DT><B>root </B><DD>rank of process in which previous arguments are examined (integer)
<DT><B>comm </B><DD>intracommunicator containing group of spawning processes (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>intercomm </B><DD>intercommunicator between original group and newly spawned group
(handle)
<DT><B>array_of_errcodes </B><DD>one error code per process (array of integer)
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_INFO </B> <DD> Invalid Info
</DL>
<DL><DT><B>MPI_ERR_SPAWN </B> <DD>
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_split</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_split"><H1>MPI_Comm_split</H1></A>
Creates new communicators based on colors and keys
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator (handle)
<DT><B>color </B><DD>control of subset assignment (nonnegative integer). Processes
with the same color are in the same new communicator
<DT><B>key </B><DD>control of rank assignment (integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> new communicator (handle)
</DL>
<P>
<H2>Notes</H2>
The <tt>color</tt> must be non-negative or <tt>MPI_UNDEFINED</tt>.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Algorithm</H2>
<PRE>
1. Use MPI_Allgather to get the color and key from each process
2. Count the number of processes with the same color; create a
communicator with that many processes. If this process has
<tt>MPI_UNDEFINED</tt> as the color, create a process with a single member.
3. Use key to order the ranks
</PRE>
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> This error is returned when some part of the MPICH
implementation is unable to acquire memory.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_free
<br>
</BODY></HTML>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_split_type</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_split_type"><H1>MPI_Comm_split_type</H1></A>
Creates new communicators based on split types and keys
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_split_type(MPI_Comm comm, int split_type, int key, MPI_Info info,
MPI_Comm * newcomm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator (handle)
<DT><B>split_type </B><DD>type of processes to be grouped together (nonnegative integer).
<DT><B>key </B><DD>control of rank assignment (integer)
<DT><B>info </B><DD>hints to improve communicator creation (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>newcomm </B> <DD> new communicator (handle)
</DL>
<P>
<H2>Notes</H2>
The <tt>split_type</tt> must be non-negative or <tt>MPI_UNDEFINED</tt>.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> This error is returned when some part of the MPICH
implementation is unable to acquire memory.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_free
<br>
</BODY></HTML>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Comm_test_inter</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Comm_test_inter"><H1>MPI_Comm_test_inter</H1></A>
Tests to see if a comm is an inter-communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Comm_test_inter(MPI_Comm comm, int *flag)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator to test (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>flag </B> <DD> true if this is an inter-communicator(logical)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,96 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Compare_and_swap</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Compare_and_swap"><H1>MPI_Compare_and_swap</H1></A>
Perform one-sided atomic compare-and-swap.
<H2>Synopsis</H2>
<PRE>
int MPI_Compare_and_swap(const void *origin_addr, const void *compare_addr,
void *result_addr, MPI_Datatype datatype, int target_rank,
MPI_Aint target_disp, MPI_Win win)
</PRE>
<P>
This function compares one element of type datatype in the compare buffer
compare_addr with the buffer at offset target_disp in the target window
specified by target_rank and win and replaces the value at the target with the
value in the origin buffer origin_addr if the compare buffer and the target
buffer are identical. The original value at the target is returned in the
buffer result_addr.
<P>
<H2>Input Parameters</H2>
<DL>
<DT><B>origin_addr </B><DD>initial address of buffer (choice)
<DT><B>compare_addr </B><DD>initial address of compare buffer (choice)
<DT><B>result_addr </B><DD>initial address of result buffer (choice)
<DT><B>datatype </B><DD>datatype of the entry in origin, result, and target buffers (handle)
<DT><B>target_rank </B><DD>rank of target (nonnegative integer)
<DT><B>target_disp </B><DD>displacement from start of window to beginning of target buffer (non-negative integer)
<DT><B>win </B><DD>window object (handle)
</DL>
<P>
<H2>Notes</H2>
This operation is atomic with respect to other "accumulate" operations.
<P>
The parameter datatype must belong to one of the following categories of
predefined datatypes: C integer, Fortran integer, Logical, Multi-language
types, or Byte as specified in Section 5.9.2 on page 176. The origin and result
buffers (origin_addr and result_addr) must be disjoint.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_OP </B> <DD> Invalid operation. MPI operations (objects of type <tt>MPI_Op</tt>)
must either be one of the predefined operations (e.g., <tt>MPI_SUM</tt>) or
created with <tt>MPI_Op_create</tt>.
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_WIN </B> <DD> Invalid MPI window object
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Dims_create</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Dims_create"><H1>MPI_Dims_create</H1></A>
Creates a division of processors in a cartesian grid
<H2>Synopsis</H2>
<PRE>
int MPI_Dims_create(int nnodes, int ndims, int dims[])
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>nnodes </B><DD>number of nodes in a grid (integer)
<DT><B>ndims </B><DD>number of cartesian dimensions (integer)
</DL>
<P>
<H2>Input/Output Parameters</H2>
<DL><DT><B>dims </B> <DD> integer array of size <tt>ndims</tt> specifying the number of nodes in each
dimension. A value of 0 indicates that <tt>MPI_Dims_create</tt> should fill in a
suitable value.
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,86 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Dist_graph_create</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Dist_graph_create"><H1>MPI_Dist_graph_create</H1></A>
MPI_DIST_GRAPH_CREATE returns a handle to a new communicator to which the distributed graph topology information is attached.
<H2>Synopsis</H2>
<PRE>
int MPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[],
const int degrees[], const int destinations[],
const int weights[],
MPI_Info info, int reorder, MPI_Comm *comm_dist_graph)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm_old </B><DD>input communicator (handle)
<DT><B>n </B><DD>number of source nodes for which this process specifies edges
(non-negative integer)
<DT><B>sources </B><DD>array containing the n source nodes for which this process
specifies edges (array of non-negative integers)
<DT><B>degrees </B><DD>array specifying the number of destinations for each source node
in the source node array (array of non-negative integers)
<DT><B>destinations </B><DD>destination nodes for the source nodes in the source node
array (array of non-negative integers)
<DT><B>weights </B><DD>weights for source to destination edges (array of non-negative
integers or MPI_UNWEIGHTED)
<DT><B>info </B><DD>hints on optimization and interpretation of weights (handle)
<DT><B>reorder </B><DD>the process may be reordered (true) or not (false) (logical)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>comm_dist_graph </B> <DD> communicator with distributed graph topology added (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Dist_graph_create_adjacent</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Dist_graph_create_adjacent"><H1>MPI_Dist_graph_create_adjacent</H1></A>
returns a handle to a new communicator to which the distributed graph topology information is attached.
<H2>Synopsis</H2>
<PRE>
int MPI_Dist_graph_create_adjacent(MPI_Comm comm_old,
int indegree, const int sources[],
const int sourceweights[],
int outdegree, const int destinations[],
const int destweights[],
MPI_Info info, int reorder, MPI_Comm *comm_dist_graph)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm_old </B><DD>input communicator (handle)
<DT><B>indegree </B><DD>size of sources and sourceweights arrays (non-negative integer)
<DT><B>sources </B><DD>ranks of processes for which the calling process is a
destination (array of non-negative integers)
<DT><B>sourceweights </B><DD>weights of the edges into the calling
process (array of non-negative integers or MPI_UNWEIGHTED)
<DT><B>outdegree </B><DD>size of destinations and destweights arrays (non-negative integer)
<DT><B>destinations </B><DD>ranks of processes for which the calling process is a
source (array of non-negative integers)
<DT><B>destweights </B><DD>weights of the edges out of the calling process
(array of non-negative integers or MPI_UNWEIGHTED)
<DT><B>info </B><DD>hints on optimization and interpretation of weights (handle)
<DT><B>reorder </B><DD>the ranks may be reordered (true) or not (false) (logical)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>comm_dist_graph </B> <DD> communicator with distributed graph topology (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_OTHER </B> <DD> Other error; use <tt>MPI_Error_string</tt> to get more information
about this error code.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,71 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Dist_graph_neighbors</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Dist_graph_neighbors"><H1>MPI_Dist_graph_neighbors</H1></A>
Provides adjacency information for a distributed graph topology.
<H2>Synopsis</H2>
<PRE>
int MPI_Dist_graph_neighbors(MPI_Comm comm,
int maxindegree, int sources[], int sourceweights[],
int maxoutdegree, int destinations[], int destweights[])
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator with distributed graph topology (handle)
<DT><B>maxindegree </B><DD>size of sources and sourceweights arrays (non-negative integer)
<DT><B>maxoutdegree </B><DD>size of destinations and destweights arrays (non-negative integer)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>sources </B><DD>processes for which the calling process is a destination (array of non-negative integers)
<DT><B>sourceweights </B><DD>weights of the edges into the calling process (array of non-negative integers)
<DT><B>destinations </B><DD>processes for which the calling process is a source (array of non-negative integers)
<DT><B>destweights </B><DD>weights of the edges out of the calling process (array of non-negative integers)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,62 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Dist_graph_neighbors_count</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Dist_graph_neighbors_count"><H1>MPI_Dist_graph_neighbors_count</H1></A>
Provides adjacency information for a distributed graph topology.
<H2>Synopsis</H2>
<PRE>
int MPI_Dist_graph_neighbors_count(MPI_Comm comm, int *indegree, int *outdegree, int *weighted)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator with distributed graph topology (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>indegree </B><DD>number of edges into this process (non-negative integer)
<DT><B>outdegree </B><DD>number of edges out of this process (non-negative integer)
<DT><B>weighted </B><DD>false if MPI_UNWEIGHTED was supplied during creation, true otherwise (logical)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Errhandler_create</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Errhandler_create"><H1>MPI_Errhandler_create</H1></A>
Creates an MPI-style errorhandler
<H2>Synopsis</H2>
<PRE>
int MPI_Errhandler_create(MPI_Handler_function *function,
MPI_Errhandler *errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>function </B> <DD> user defined error handling procedure
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>errhandler </B> <DD> MPI error handler (handle)
</DL>
<P>
<H2>Notes</H2>
The MPI Standard states that an implementation may make the output value
(errhandler) simply the address of the function. However, the action of
<tt>MPI_Errhandler_free</tt> makes this impossible, since it is required to set the
value of the argument to <tt>MPI_ERRHANDLER_NULL</tt>. In addition, the actual
error handler must remain until all communicators that use it are
freed.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Deprecated Function</H2>
The MPI-2 standard deprecated a number of routines because MPI-2 provides
better versions. This routine is one of those that was deprecated. The
routine may continue to be used, but new code should use the replacement
routine.
The replacement routine for this function is <tt>MPI_Comm_create_errhandler</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> This error is returned when some part of the MPICH
implementation is unable to acquire memory.
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_create_errhandler, MPI_Errhandler_free
<br>
</BODY></HTML>

View File

@@ -0,0 +1,57 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Errhandler_free</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Errhandler_free"><H1>MPI_Errhandler_free</H1></A>
Frees an MPI-style errorhandler
<H2>Synopsis</H2>
<PRE>
int MPI_Errhandler_free(MPI_Errhandler *errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>errhandler </B> <DD> MPI error handler (handle). Set to <tt>MPI_ERRHANDLER_NULL</tt> on
exit.
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Errhandler_get</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Errhandler_get"><H1>MPI_Errhandler_get</H1></A>
Gets the error handler for a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>comm </B> <DD> communicator to get the error handler from (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>errhandler </B> <DD> MPI error handler currently associated with communicator
(handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Note on Implementation</H2>
<P>
The MPI Standard was unclear on whether this routine required the user to call
<tt>MPI_Errhandler_free</tt> once for each call made to this routine in order to
free the error handler. After some debate, the MPI Forum added an explicit
statement that users are required to call <tt>MPI_Errhandler_free</tt> when the
return value from this routine is no longer needed. This behavior is similar
to the other MPI routines for getting objects; for example, <tt>MPI_Comm_group
</tt>requires that the user call <tt>MPI_Group_free</tt> when the group returned
by <tt>MPI_Comm_group</tt> is no longer needed.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,73 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Errhandler_set</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Errhandler_set"><H1>MPI_Errhandler_set</H1></A>
Sets the error handler for a communicator
<H2>Synopsis</H2>
<PRE>
int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>comm </B><DD>communicator to set the error handler for (handle)
<DT><B>errhandler </B><DD>new MPI error handler for communicator (handle)
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Deprecated Function</H2>
The MPI-2 standard deprecated a number of routines because MPI-2 provides
better versions. This routine is one of those that was deprecated. The
routine may continue to be used, but new code should use the replacement
routine.
The replacement for this routine is <tt>MPI_Comm_set_errhandler</tt>.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<P>
<H0>See Also</H0>
MPI_Comm_set_errhandler, MPI_Errhandler_create, MPI_Comm_create_errhandler
<br>
</BODY></HTML>

View File

@@ -0,0 +1,56 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Error_class</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Error_class"><H1>MPI_Error_class</H1></A>
Converts an error code into an error class
<H2>Synopsis</H2>
<PRE>
int MPI_Error_class(int errorcode, int *errorclass)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>errorcode </B> <DD> Error code returned by an MPI routine
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>errorclass </B> <DD> Error class associated with <tt>errorcode
</tt>
</DL>
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is both thread- and interrupt-safe.
This means that this routine may safely be used by multiple threads and
from within a signal handler.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,67 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Error_string</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Error_string"><H1>MPI_Error_string</H1></A>
Return a string for a given error code
<H2>Synopsis</H2>
<PRE>
int MPI_Error_string(int errorcode, char *string, int *resultlen)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>errorcode </B> <DD> Error code returned by an MPI routine or an MPI error class
</DL>
<P>
<H2>Output Parameters</H2>
<DL>
<DT><B>string </B><DD>Text that corresponds to the errorcode
<DT><B>resultlen </B><DD>Length of string
</DL>
<P>
Notes: Error codes are the values return by MPI routines (in C) or in the
<tt>ierr</tt> argument (in Fortran). These can be converted into error classes
with the routine <tt>MPI_Error_class</tt>.
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Exscan</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Exscan"><H1>MPI_Exscan</H1></A>
Computes the exclusive scan (partial reductions) of data on a collection of processes
<H2>Synopsis</H2>
<PRE>
int MPI_Exscan(const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
MPI_Op op, MPI_Comm comm)
</PRE>
<H2>Input Parameters</H2>
<DL>
<DT><B>sendbuf </B><DD>starting address of send buffer (choice)
<DT><B>count </B><DD>number of elements in input buffer (integer)
<DT><B>datatype </B><DD>data type of elements of input buffer (handle)
<DT><B>op </B><DD>operation (handle)
<DT><B>comm </B><DD>communicator (handle)
</DL>
<P>
<H2>Output Parameters</H2>
<DL><DT><B>recvbuf </B> <DD> starting address of receive buffer (choice)
</DL>
<P>
<H2>Notes</H2>
<tt>MPI_Exscan</tt> is like <tt>MPI_Scan</tt>, except that the contribution from the
calling process is not included in the result at the calling process
(it is contributed to the subsequent processes, of course).
<P>
<H2>Thread and Interrupt Safety</H2>
<P>
This routine is thread-safe. This means that this routine may be
safely used by multiple threads without the need for any user-provided
thread locks. However, the routine is not interrupt safe. Typically,
this is due to the use of memory allocation routines such as <tt>malloc
</tt>or other non-MPICH runtime routines that are themselves not interrupt-safe.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Notes on collective operations</H2>
<P>
The reduction functions (<tt>MPI_Op</tt>) do not return an error value. As a result,
if the functions detect an error, all they can do is either call <tt>MPI_Abort
</tt>or silently skip the problem. Thus, if you change the error handler from
<tt>MPI_ERRORS_ARE_FATAL</tt> to something else, for example, <tt>MPI_ERRORS_RETURN</tt>,
then no error may be indicated.
<P>
The reason for this is the performance problems in ensuring that
all collective routines return the same error value.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator. A common error is to use a null
communicator in a call (not even allowed in <tt>MPI_Comm_rank</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer. Usually a null buffer where
one is not valid.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> This error class is associcated with an error code that
indicates that two buffer arguments are <em>aliased</em>; that is, the
describe overlapping storage (often the exact same storage). This
is prohibited in MPI (because it is prohibited by the Fortran
standard, and rather than have a separate case for C and Fortran, the
MPI Forum adopted the more restrictive requirements of Fortran).
</DL>
</BODY></HTML>

View File

@@ -0,0 +1,103 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Fetch_and_op</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Fetch_and_op"><H1>MPI_Fetch_and_op</H1></A>
Perform one-sided read-modify-write.
<H2>Synopsis</H2>
<PRE>
int MPI_Fetch_and_op(const void *origin_addr, void *result_addr,
MPI_Datatype datatype, int target_rank, MPI_Aint target_disp,
MPI_Op op, MPI_Win win)
</PRE>
<P>
Accumulate one element of type datatype from the origin buffer (origin_addr) to
the buffer at offset target_disp, in the target window specified by target_rank
and win, using the operation op and return in the result buffer result_addr the
content of the target buffer before the accumulation.
<P>
<H2>Input Parameters</H2>
<DL>
<DT><B>origin_addr </B><DD>initial address of buffer (choice)
<DT><B>result_addr </B><DD>initial address of result buffer (choice)
<DT><B>datatype </B><DD>datatype of the entry in origin, result, and target buffers (handle)
<DT><B>target_rank </B><DD>rank of target (nonnegative integer)
<DT><B>target_disp </B><DD>displacement from start of window to beginning of target buffer (non-negative integer)
<DT><B>op </B><DD>reduce operation (handle)
<DT><B>win </B><DD>window object (handle)
</DL>
<P>
<H2>Notes</H2>
This operations is atomic with respect to other "accumulate" operations.
<P>
The generic functionality of <tt>MPI_Get_accumulate</tt> might limit the performance of
fetch-and-increment or fetch-and-add calls that might be supported by special
hardware operations. <tt>MPI_Fetch_and_op</tt> thus allows for a fast implementation
of a commonly used subset of the functionality of <tt>MPI_Get_accumulate</tt>.
<P>
The origin and result buffers (origin_addr and result_addr) must be disjoint.
Any of the predefined operations for <tt>MPI_Reduce</tt>, as well as <tt>MPI_NO_OP</tt> or
<tt>MPI_REPLACE</tt>, can be specified as op; user-defined functions cannot be used. The
datatype argument must be a predefined datatype.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <tt>MPI_WTIME</tt> and <tt>MPI_WTICK</tt>) have
an additional argument <tt>ierr</tt> at the end of the argument list. <tt>ierr
</tt>is an integer and has the same meaning as the return value of the routine
in C. In Fortran, MPI routines are subroutines, and are invoked with the
<tt>call</tt> statement.
<P>
All MPI objects (e.g., <tt>MPI_Datatype</tt>, <tt>MPI_Comm</tt>) are of type <tt>INTEGER
</tt>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <tt>MPI_Wtime</tt> and <tt>MPI_Wtick</tt>) return an error value;
C routines as the value of the function and Fortran routines in the last
argument. Before the value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job. The error handler
may be changed with <tt>MPI_Comm_set_errhandler</tt> (for communicators),
<tt>MPI_File_set_errhandler</tt> (for files), and <tt>MPI_Win_set_errhandler</tt> (for
RMA windows). The MPI-1 routine <tt>MPI_Errhandler_set</tt> may be used but
its use is deprecated. The predefined error handler
<tt>MPI_ERRORS_RETURN</tt> may be used to cause error values to be returned.
Note that MPI does <em>not</em> guarentee that an MPI program can continue past
an error; however, MPI implementations will attempt to continue whenever
possible.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument. Some argument is invalid and is not
identified by a specific error class (e.g., <tt>MPI_ERR_RANK</tt>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument. Count arguments must be
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_OP </B> <DD> Invalid operation. MPI operations (objects of type <tt>MPI_Op</tt>)
must either be one of the predefined operations (e.g., <tt>MPI_SUM</tt>) or
created with <tt>MPI_Op_create</tt>.
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank. Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<tt>MPI_Recv</tt>, <tt>MPI_Irecv</tt>, <tt>MPI_Sendrecv</tt>, etc.) may also be <tt>MPI_ANY_SOURCE</tt>.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument. Additionally, this error can
occur if an uncommitted MPI_Datatype (see <tt>MPI_Type_commit</tt>) is used
in a communication call.
</DL>
<DL><DT><B>MPI_ERR_WIN </B> <DD> Invalid MPI window object
</DL>
<P>
<H0>See Also</H0>
MPI_Get_accumulate
<br>
</BODY></HTML>

View File

@@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_File_c2f</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_File_c2f"><H1>MPI_File_c2f</H1></A>
Translates a C file handle to a Fortran file handle
<H2>Synopsis</H2>
<PRE>
MPI_Fint MPI_File_c2f(MPI_File fh)
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>fh </B> <DD> C file handle (handle)
</DL>
<P>
<H2>Return Value</H2>
Fortran file handle (integer)
</BODY></HTML>

Some files were not shown because too many files have changed in this diff Show More