本文整理汇总了C++中MPI_Group_free函数的典型用法代码示例。如果您正苦于以下问题:C++ MPI_Group_free函数的具体用法?C++ MPI_Group_free怎么用?C++ MPI_Group_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MPI_Group_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: print_comm
int print_comm(int testid, int rank, MPI_Comm comm)
{
int i;
if (comm != MPI_COMM_NULL) {
int ranks;
MPI_Comm_size(comm, &ranks);
int* members_comm = (int*) malloc(ranks * sizeof(int));
int* members_world = (int*) malloc(ranks * sizeof(int));
for (i = 0; i < ranks; i++) {
members_comm[i] = i;
}
MPI_Group group_world, group_comm;
MPI_Comm_group(MPI_COMM_WORLD, &group_world);
MPI_Comm_group(comm, &group_comm);
MPI_Group_translate_ranks(group_comm, ranks, members_comm, group_world, members_world);
MPI_Group_free(&group_comm);
MPI_Group_free(&group_world);
print_members(testid, rank, ranks, members_world);
free(members_world);
free(members_comm);
}
return 0;
}
开发者ID:tgamblin,项目名称:lwgrp,代码行数:30,代码来源:testsplit.c
示例2: ARMCI_Absolute_id
/** Translate a group process rank to the corresponding process rank in the
* ARMCI world group.
*
* @param[in] group Group to translate from.
* @param[in] group_rank Rank of the process in group.
*/
int ARMCI_Absolute_id(ARMCI_Group *group, int group_rank) {
int world_rank;
MPI_Group world_group, sub_group;
ARMCII_Assert(group_rank >= 0 && group_rank < group->size);
/* Check if group is the world group */
if (group->comm == ARMCI_GROUP_WORLD.comm)
world_rank = group_rank;
/* Check for translation cache */
else if (group->grp_to_abs != NULL)
world_rank = group->grp_to_abs[group_rank];
else {
/* Translate the rank */
MPI_Comm_group(ARMCI_GROUP_WORLD.comm, &world_group);
MPI_Comm_group(group->comm, &sub_group);
MPI_Group_translate_ranks(sub_group, 1, &group_rank, world_group, &world_rank);
MPI_Group_free(&world_group);
MPI_Group_free(&sub_group);
}
/* Check if translation failed */
if (world_rank == MPI_UNDEFINED)
return -1;
else
return world_rank;
}
开发者ID:jeffhammond,项目名称:armci-mpi,代码行数:37,代码来源:groups.c
示例3: main
int main(int argc, char **argv)
{
MPI_Group basegroup;
MPI_Group g1;
MPI_Comm comm, newcomm;
int rank, size;
int worldrank;
int errs = 0, errclass, mpi_errno;
MTest_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &worldrank);
comm = MPI_COMM_WORLD;
MPI_Comm_group(comm, &basegroup);
MPI_Comm_rank(comm, &rank);
MPI_Comm_size(comm, &size);
MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
MPI_Comm_split(comm, 0, size - rank, &newcomm);
MPI_Comm_group(newcomm, &g1);
/* Checking group_intersection for NULL variable */
mpi_errno = MPI_Group_intersection(basegroup, g1, NULL);
MPI_Error_class(mpi_errno, &errclass);
if (errclass != MPI_ERR_ARG)
++errs;
MPI_Comm_free(&comm);
MPI_Comm_free(&newcomm);
MPI_Group_free(&basegroup);
MPI_Group_free(&g1);
MTest_Finalize(errs);
return 0;
}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:33,代码来源:group_intersection_nullarg.c
示例4: main
int
main (int argc, char **argv)
{
int nprocs = -1;
int rank = -1;
char processor_name[128];
int namelen = 128;
MPI_Group newgroup, newgroup2;
/* init */
MPI_Init (&argc, &argv);
MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Get_processor_name (processor_name, &namelen);
printf ("(%d) is alive on %s\n", rank, processor_name);
fflush (stdout);
MPI_Barrier (MPI_COMM_WORLD);
MPI_Comm_group (MPI_COMM_WORLD, &newgroup);
MPI_Group_free (&newgroup);
MPI_Barrier (MPI_COMM_WORLD);
/* now with an alias... */
MPI_Comm_group (MPI_COMM_WORLD, &newgroup);
newgroup2 = newgroup;
MPI_Group_free (&newgroup2);
MPI_Barrier (MPI_COMM_WORLD);
printf ("(%d) Finished normally\n", rank);
MPI_Finalize ();
}
开发者ID:Julio-Anjos,项目名称:simgrid,代码行数:29,代码来源:group-no-error.c
示例5: main
int main(int argc, char **argv)
{
int rank, nproc, mpi_errno;
int i, ncomm, *ranks;
int errs = 1;
MPI_Comm *comm_hdls;
MPI_Group world_group;
MTest_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &nproc);
MPI_Comm_group(MPI_COMM_WORLD, &world_group);
MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
comm_hdls = malloc(sizeof(MPI_Comm) * MAX_NCOMM);
ranks = malloc(sizeof(int) * nproc);
ncomm = 0;
for (i = 0; i < MAX_NCOMM; i++) {
int incl = i % nproc;
MPI_Group comm_group;
/* Comms include ranks: 0; 1; 2; ...; 0; 1; ... */
MPI_Group_incl(world_group, 1, &incl, &comm_group);
/* Note: the comms we create all contain one rank from MPI_COMM_WORLD */
mpi_errno = MPI_Comm_create(MPI_COMM_WORLD, comm_group, &comm_hdls[i]);
if (mpi_errno == MPI_SUCCESS) {
if (verbose)
printf("%d: Created comm %d\n", rank, i);
ncomm++;
} else {
if (verbose)
printf("%d: Error creating comm %d\n", rank, i);
MPI_Group_free(&comm_group);
errs = 0;
break;
}
MPI_Group_free(&comm_group);
}
for (i = 0; i < ncomm; i++)
MPI_Comm_free(&comm_hdls[i]);
free(comm_hdls);
free(ranks);
MPI_Group_free(&world_group);
MTest_Finalize(errs);
return MTestReturnValue(errs);
}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:55,代码来源:too_many_comms3.c
示例6: main
int main (int argc, char **argv)
{
int num, i, rank, localRank;
MPI_Group all, odd, even;
MPI_Comm oddComm, evenComm;
char mess[11];
MPI_Init (&argc, &argv);
// copy all the processes in group "all"
MPI_Comm_group (MPI_COMM_WORLD, &all);
MPI_Comm_size (MPI_COMM_WORLD, &num);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
int grN = 0;
int ranks[num / 2];
for (i = 0; i < num; i += 2)
ranks[grN++] = i;
// extract from "all" only the odd ones
MPI_Group_excl (all, grN, ranks, &odd);
// sutract odd group from all to get the even ones
MPI_Group_difference (all, odd, &even);
MPI_Comm_create (MPI_COMM_WORLD, odd, &oddComm);
MPI_Comm_create (MPI_COMM_WORLD, even, &evenComm);
// check group membership
MPI_Group_rank (odd, &localRank);
if (localRank != MPI_UNDEFINED)
{
if (localRank == 0) // local group root, sets-up message
strcpy (mess, "ODD GROUP");
MPI_Bcast (mess, 11, MPI_CHAR, 0, oddComm);
MPI_Comm_free (&oddComm); // free communicator in processes where it is valid
}
else
{
MPI_Comm_rank (evenComm, &localRank);
if (localRank == 0) // local group root, sets-up message
strcpy (mess, "EVEN GROUP");
MPI_Bcast (mess, 11, MPI_CHAR, 0, evenComm);
MPI_Comm_free (&evenComm);
}
printf ("Process %i with local rank %i received %s\n", rank, localRank, mess);
// free up memory
MPI_Group_free (&all);
MPI_Group_free (&odd);
MPI_Group_free (&even);
MPI_Finalize ();
return 0;
}
开发者ID:sarvex,项目名称:multicore,代码行数:54,代码来源:commExample.c
示例7: main
int main(int argc, char **argv) {
int rank, nproc, mpi_errno;
int i, ncomm, *ranks;
int errors = 1;
MPI_Comm *comm_hdls;
MPI_Group world_group;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &nproc);
MPI_Comm_group(MPI_COMM_WORLD, &world_group);
MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
comm_hdls = malloc(sizeof(MPI_Comm) * MAX_NCOMM);
ranks = malloc(sizeof(int) * nproc);
for (i = 0; i < nproc; i++)
ranks[i] = i;
ncomm = 0;
for (i = 0; i < MAX_NCOMM; i++) {
MPI_Group comm_group;
/* Comms include ranks: 0; 0,1; 0,1,2; ...; 0; 0,1; 0,1,2; ... */
MPI_Group_incl(world_group, (i+1) % (nproc+1), /* Adding 1 yields counts of 1..nproc */
ranks, &comm_group);
/* Note: the comms we create are all varying subsets of MPI_COMM_WORLD */
mpi_errno = MPI_Comm_create(MPI_COMM_WORLD, comm_group, &comm_hdls[i]);
if (mpi_errno == MPI_SUCCESS) {
ncomm++;
} else {
if (verbose) printf("%d: Error creating comm %d\n", rank, i);
MPI_Group_free(&comm_group);
errors = 0;
break;
}
MPI_Group_free(&comm_group);
}
for (i = 0; i < ncomm; i++)
MPI_Comm_free(&comm_hdls[i]);
free(comm_hdls);
MPI_Group_free(&world_group);
MTest_Finalize(errors);
MPI_Finalize();
return 0;
}
开发者ID:abhinavvishnu,项目名称:matex,代码行数:54,代码来源:too_many_comms2.c
示例8: ARMCII_Group_init_from_comm
/** Initialize an ARMCI group's remaining fields using the communicator field.
*/
void ARMCII_Group_init_from_comm(ARMCI_Group *group) {
if (group->comm != MPI_COMM_NULL) {
MPI_Comm_size(group->comm, &group->size);
MPI_Comm_rank(group->comm, &group->rank);
} else {
group->rank = -1;
group->size = 0;
}
/* If noncollective groups are in use, create a separate communicator that
can be used for noncollective group creation with this group as the parent.
This ensures that calls to MPI_Intercomm_create can't clash with any user
communication. */
if (ARMCII_GLOBAL_STATE.noncollective_groups && group->comm != MPI_COMM_NULL)
MPI_Comm_dup(group->comm, &group->noncoll_pgroup_comm);
else
group->noncoll_pgroup_comm = MPI_COMM_NULL;
/* Check if translation caching is enabled */
if (ARMCII_GLOBAL_STATE.cache_rank_translation) {
if (group->comm != MPI_COMM_NULL) {
int *ranks, i;
MPI_Group world_group, sub_group;
group->abs_to_grp = malloc(sizeof(int)*ARMCI_GROUP_WORLD.size);
group->grp_to_abs = malloc(sizeof(int)*group->size);
ranks = malloc(sizeof(int)*ARMCI_GROUP_WORLD.size);
ARMCII_Assert(group->abs_to_grp != NULL && group->grp_to_abs != NULL && ranks != NULL);
for (i = 0; i < ARMCI_GROUP_WORLD.size; i++)
ranks[i] = i;
MPI_Comm_group(ARMCI_GROUP_WORLD.comm, &world_group);
MPI_Comm_group(group->comm, &sub_group);
MPI_Group_translate_ranks(sub_group, group->size, ranks, world_group, group->grp_to_abs);
MPI_Group_translate_ranks(world_group, ARMCI_GROUP_WORLD.size, ranks, sub_group, group->abs_to_grp);
MPI_Group_free(&world_group);
MPI_Group_free(&sub_group);
free(ranks);
}
}
/* Translation caching is disabled */
else {
group->abs_to_grp = NULL;
group->grp_to_abs = NULL;
}
}
开发者ID:jeffhammond,项目名称:armci-mpi,代码行数:56,代码来源:groups.c
示例9: main
int main( int argc, char **argv )
{
int i, n, n_goal = 2048, n_all, rc, n_ranks, *ranks, rank, size, len;
MPI_Group *group_array, world_group;
char msg[MPI_MAX_ERROR_STRING];
MPI_Init( &argc, &argv );
MPI_Errhandler_set( MPI_COMM_WORLD, MPI_ERRORS_RETURN );
MPI_Comm_size( MPI_COMM_WORLD, &size );
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
n = n_goal;
group_array = (MPI_Group *)malloc( n * sizeof(MPI_Group) );
MPI_Comm_group( MPI_COMM_WORLD, &world_group );
n_ranks = size;
ranks = (int *)malloc( size * sizeof(int) );
for (i=0; i<size; i++) ranks[i] = i;
for (i=0; i<n; i++) {
rc = MPI_Group_incl( world_group, n_ranks, ranks, group_array + i );
if (rc) {
fprintf( stderr, "Error when creating group number %d\n", i );
MPI_Error_string( rc, msg, &len );
fprintf( stderr, "%s\n", msg );
n = i + 1;
break;
}
}
for (i=0; i<n; i++) {
rc = MPI_Group_free( group_array + i );
if (rc) {
fprintf( stderr, "Error when freeing group number %d\n", i );
MPI_Error_string( rc, msg, &len );
fprintf( stderr, "%s\n", msg );
break;
}
}
MPI_Group_free( &world_group );
MPI_Allreduce( &n, &n_all, 1, MPI_INT, MPI_MIN, MPI_COMM_WORLD );
if (rank == 0) {
printf( "Completed test of %d type creations\n", n_all );
if (n_all != n_goal) {
printf (
"This MPI implementation limits the number of datatypes that can be created\n\
This is allowed by the standard and is not a bug, but is a limit on the\n\
implementation\n" );
}
开发者ID:MartinLidh,项目名称:tddc78,代码行数:53,代码来源:groupcreate.c
示例10: PIOc_finalize
int PIOc_finalize(const int iosysid)
{
iosystem_desc_t *ios, *nios;
int msg;
int mpierr;
ios = pio_get_iosystem_from_id(iosysid);
if(ios == NULL)
return PIO_EBADID;
/* If asynch IO is in use, send the PIO_MSG_EXIT message from the
* comp master to the IO processes. */
if (ios->async_interface && !ios->comp_rank)
{
msg = PIO_MSG_EXIT;
mpierr = MPI_Send(&msg, 1, MPI_INT, ios->ioroot, 1, ios->union_comm);
CheckMPIReturn(mpierr, __FILE__, __LINE__);
}
/* Free this memory that was allocated in init_intracomm. */
if (ios->ioranks)
free(ios->ioranks);
/* Free the buffer pool. */
free_cn_buffer_pool(*ios);
/* Free the MPI groups. */
if (ios->compgroup != MPI_GROUP_NULL)
MPI_Group_free(&ios->compgroup);
if (ios->iogroup != MPI_GROUP_NULL)
MPI_Group_free(&(ios->iogroup));
/* Free the MPI communicators. my_comm is just a copy (but not an
* MPI copy), so does not have to have an MPI_Comm_free() call. */
if(ios->intercomm != MPI_COMM_NULL){
MPI_Comm_free(&(ios->intercomm));
}
if(ios->io_comm != MPI_COMM_NULL){
MPI_Comm_free(&(ios->io_comm));
}
if(ios->comp_comm != MPI_COMM_NULL){
MPI_Comm_free(&(ios->comp_comm));
}
if(ios->union_comm != MPI_COMM_NULL){
MPI_Comm_free(&(ios->union_comm));
}
/* Delete the iosystem_desc_t data associated with this id. */
return pio_delete_iosystem_from_list(iosysid);
}
开发者ID:coecms,项目名称:ParallelIO,代码行数:51,代码来源:pioc.c
示例11: ARMCI_Group_create_comm_collective
/** Create an ARMCI group that contains a subset of the nodes in the parent
* group. Collective across output group.
*
* @param[in] grp_size Number of entries in pid_list.
* @param[in] pid_list List of process ids that will be in the new group.
* @param[out] armci_grp_out The new ARMCI group, only valid on group members.
* @param[in] armci_grp_parent The parent of the new ARMCI group.
*/
static inline void ARMCI_Group_create_comm_collective(int grp_size, int *pid_list, ARMCI_Group *armci_grp_out,
ARMCI_Group *armci_grp_parent) {
MPI_Group mpi_grp_parent;
MPI_Group mpi_grp_child;
MPI_Comm_group(armci_grp_parent->comm, &mpi_grp_parent);
MPI_Group_incl(mpi_grp_parent, grp_size, pid_list, &mpi_grp_child);
MPI_Comm_create(armci_grp_parent->comm, mpi_grp_child, &armci_grp_out->comm);
MPI_Group_free(&mpi_grp_parent);
MPI_Group_free(&mpi_grp_child);
}
开发者ID:jeffhammond,项目名称:armci-mpi,代码行数:22,代码来源:groups.c
示例12: translate_rank
int translate_rank(MPI_Comm comm1, int rank1, MPI_Comm comm2)
{
MPI_Group group1, group2;
MPI_Comm_group(comm1, &group1);
MPI_Comm_group(comm2, &group2);
int rank2;
MPI_Group_translate_ranks(group1, 1, &rank1, group2, &rank2);
MPI_Group_free(&group2);
MPI_Group_free(&group1);
return rank2;
}
开发者ID:mrzv,项目名称:henson,代码行数:14,代码来源:common.hpp
示例13: main
int main(int argc, char **argv)
{
int rank, size, i;
MPI_Group groupall, groupunion, newgroup, group[GROUPS];
MPI_Comm newcomm;
int ranks[GROUPS][100];
int nranks[GROUPS] = { 0, 0, 0 };
MPI_Init(&argc, &argv);
MPI_Barrier(MPI_COMM_WORLD);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_group(MPI_COMM_WORLD, &groupall);
/* Divide groups */
for (i = 0; i < size; i++)
ranks[i % GROUPS][nranks[i % GROUPS]++] = i;
for (i = 0; i < GROUPS; i++)
MPI_Group_incl(groupall, nranks[i], ranks[i], &group[i]);
MPI_Group_difference(groupall, group[1], &groupunion);
MPI_Comm_create(MPI_COMM_WORLD, group[2], &newcomm);
newgroup = MPI_GROUP_NULL;
if (newcomm != MPI_COMM_NULL)
{
/* If we don't belong to group[2], this would fail */
MPI_Comm_group(newcomm, &newgroup);
}
/* Free the groups */
MPI_Group_free(&groupall);
for (i = 0; i < GROUPS; i++)
MPI_Group_free(&group[i]);
MPI_Group_free(&groupunion);
if (newgroup != MPI_GROUP_NULL)
{
MPI_Group_free(&newgroup);
}
/* Free the communicator */
if (newcomm != MPI_COMM_NULL)
MPI_Comm_free(&newcomm);
Test_Waitforall();
Test_Global_Summary();
MPI_Finalize();
return 0;
}
开发者ID:carsten-clauss,项目名称:MP-MPICH,代码行数:49,代码来源:grouptest.c
示例14: MPI_Finalized
~MPI_Gang()
{
# ifdef USE_MPI
if( !owner ) return;
int final_flag;
MPI_Finalized(&final_flag);
if( final_flag ) return;
if( pool.group!=MPI_GROUP_NULL ) MPI_Group_free(&pool.group);
if( gang.group!=MPI_GROUP_NULL ) MPI_Group_free(&gang.group);
if( lead.group!=MPI_GROUP_NULL ) MPI_Group_free(&lead.group);
if( pool.comm!=MPI_COMM_NULL && pool.comm!=MPI_COMM_WORLD ) MPI_Comm_free(&pool.comm);
if( gang.comm!=MPI_COMM_NULL && pool.comm!=MPI_COMM_WORLD ) MPI_Comm_free(&gang.comm);
if( lead.comm!=MPI_COMM_NULL && pool.comm!=MPI_COMM_WORLD ) MPI_Comm_free(&lead.comm);
# endif
}
开发者ID:browngrg,项目名称:caledonia,代码行数:15,代码来源:MPI_Gang.hpp
示例15: ARMCI_Group_free
void ARMCI_Group_free(ARMCI_Group *group) {
int rv;
ARMCI_iGroup *igroup = (ARMCI_iGroup *)group;
#ifdef ARMCI_GROUP
int i, world_me = armci_msg_me();
for(i=0; i<igroup->grp_attr.nproc; i++) {
if(igroup->grp_attr.proc_list[i] == world_me) {
break;
}
}
if(i==igroup->grp_attr.nproc) {
return; /*not in group to be freed*/
}
#endif
assert(igroup);
free(igroup->grp_attr.grp_clus_info);
#ifdef ARMCI_GROUP
free(igroup->grp_attr.proc_list);
igroup->grp_attr.nproc = 0;
#else
rv=MPI_Group_free(&(igroup->igroup));
if(rv != MPI_SUCCESS) armci_die("MPI_Group_free: Failed ",armci_me);
if(igroup->icomm != MPI_COMM_NULL) {
rv = MPI_Comm_free( (MPI_Comm*)&(igroup->icomm) );
if(rv != MPI_SUCCESS) armci_die("MPI_Comm_free: Failed ",armci_me);
}
#endif
}
开发者ID:dmlb2000,项目名称:nwchem-cml,代码行数:35,代码来源:groups.c
示例16: numProcsFails
int numProcsFails(MPI_Comm mcw){
int rank, ret, numFailures = 0, flag;
MPI_Group fGroup;
MPI_Errhandler newEh;
MPI_Comm dupComm;
// Error handler
MPI_Comm_create_errhandler(mpiErrorHandler, &newEh);
MPI_Comm_rank(mcw, &rank);
// Set error handler for communicator
MPI_Comm_set_errhandler(mcw, newEh);
// Target function
if(MPI_SUCCESS != (ret = MPI_Comm_dup(mcw, &dupComm))) {
//if(MPI_SUCCESS != (ret = MPI_Barrier(mcw))) { // MPI_Comm_dup or MPI_Barrier
OMPI_Comm_failure_ack(mcw);
OMPI_Comm_failure_get_acked(mcw, &fGroup);
// Get the number of failures
MPI_Group_size(fGroup, &numFailures);
}// end of "MPI_Comm_dup failure"
OMPI_Comm_agree(mcw, &flag);
// Memory release
if(numFailures > 0)
MPI_Group_free(&fGroup);
MPI_Errhandler_free(&newEh);
return numFailures;
}//numProcsFails()
开发者ID:mdmohsinali,项目名称:SGCT-Based-Fault-Tolerant-Taxila-LBM,代码行数:31,代码来源:FailureRecovery.cpp
示例17: main
int main(int argc, char* argv[])
{
MPI_Comm comm, newcomm, scomm;
MPI_Group group;
MPI_Info newinfo;
int rank, size, color;
int errs = 0, errclass, mpi_errno;
MTest_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_dup(MPI_COMM_WORLD, &comm);
MPI_Comm_group(comm, &group);
MPI_Comm_create(comm, group, &newcomm);
color = rank % 2;
MPI_Comm_split(MPI_COMM_WORLD, color, rank, &scomm);
MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
/*test comm_split_type for NULL variable */
mpi_errno = MPI_Comm_split_type(scomm, 2, 4, newinfo, NULL);
MPI_Error_class(mpi_errno, &errclass);
if (errclass != MPI_ERR_ARG)
++errs;
MPI_Comm_free(&comm);
MPI_Comm_free(&newcomm);
MPI_Comm_free(&scomm);
MPI_Group_free(&group);
MTest_Finalize(errs);
MPI_Finalize();
return 0;
}
开发者ID:NexMirror,项目名称:MPICH,代码行数:34,代码来源:comm_split_type_nullarg.c
示例18: mpi_group_free_
FORTRAN_API void FORT_CALL mpi_group_free_ ( MPI_Fint *group, MPI_Fint *__ierr )
{
MPI_Group l_group = MPI_Group_f2c(*group);
*__ierr = MPI_Group_free(&l_group);
if (*__ierr == MPI_SUCCESS)
*group = MPI_Group_c2f(l_group);
}
开发者ID:hpc,项目名称:mvapich-cce,代码行数:7,代码来源:group_freef.c
示例19: main
int main(int argc, char *argv[])
{
int errs = 0, errclass, mpi_errno;
int rank, size;
MPI_Comm comm;
MPI_Group group;
MTest_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_dup(MPI_COMM_WORLD, &comm);
MPI_Comm_group(comm, &group);
MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
/*test comm_create for NULL variable */
mpi_errno = MPI_Comm_create(comm, group, NULL);
MPI_Error_class(mpi_errno, &errclass);
if (errclass != MPI_ERR_ARG)
++errs;
MPI_Comm_free(&comm);
MPI_Group_free(&group);
MTest_Finalize(errs);
return 0;
}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:26,代码来源:comm_create_nullarg.c
示例20: Java_mpi_Group_free
/*
* Class: mpi_Group
* Method: free
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_mpi_Group_free(JNIEnv *env, jobject jthis)
{
MPI_Group group=(MPI_Group)((*env)->GetLongField(env,jthis,ompi_java.GrouphandleID));
MPI_Group_free(&group);
(*env)->SetLongField(env,jthis, ompi_java.GrouphandleID,(jlong)MPI_GROUP_NULL);
}
开发者ID:moutai,项目名称:ompi-svn-mirror,代码行数:12,代码来源:mpi_Group.c
注:本文中的MPI_Group_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论