This user email requires special attention, as it highlighted some issues with our MPI_T variables.
I wrote a short application to list all pvar and cvar available. Unexpectedly, listing the cvars leads to a lot of failures, 138 over 1035 cvars. If a cvar is broken I would have expected (based on the reading of the MPI_T chapter) not to be able to iterate over them instead of getting an error. The tester is attached. George. ---------- Forwarded message ---------- From: Khalid Hasanov <xali...@gmail.com> List-Post: devel@lists.open-mpi.org Date: Fri, Aug 14, 2015 at 11:14 AM Subject: [OMPI users] open mpi 1.8.6. MPI_T To: Open MPI Users <us...@open-mpi.org> Hello, I am trying to use MPI_T interface to set *coll_tuned_bcast_algorithm* mca parameter during run time, however I was not successful to do that. I wonder if is it currently supported in Open MPI. I had the same problem with setting *btl_self_eager_limit *parameter. The code I am using attached below. Thanks. -- Best Regards, Khalid _______________________________________________ users mailing list us...@open-mpi.org Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users Link to this post: http://www.open-mpi.org/community/lists/users/2015/08/27470.php
#include <stdio.h> #include <string.h> #include "mpi.h" int main( int argc, char* argv[] ) { int provided, err, scope; int numPvar, numCvar, nameLen, descLen, verbosity, varClass; int binding, isReadonly, isContinous, isAtomic, i; char name[128], desc[1024]; MPI_T_enum enumtype; MPI_Datatype datatype; MPI_Init_thread(0, 0, MPI_THREAD_SINGLE, &provided); err = MPI_T_init_thread(MPI_THREAD_SINGLE, &provided); if(err) MPI_Abort(MPI_COMM_WORLD, 0); err = MPI_T_pvar_get_num(&numPvar); if(err) MPI_Abort(MPI_COMM_WORLD, 0); printf("%d MPI Performance Variables\n", numPvar); for(i = 0; i < numPvar; i++) { nameLen = sizeof(name); descLen = sizeof(desc); err = MPI_T_pvar_get_info(i, name, &nameLen, &verbosity, &varClass, &datatype, &enumtype, desc, &descLen, &binding, &isReadonly, &isContinous, &isAtomic); if(err) { printf("Failed to read Pvar %d/%d\n", i, numPvar); MPI_Abort(MPI_COMM_WORLD, 0); } printf("\t%s\tClass-%d\tReadonly-%s\tContinous-%s\tAtomic-%s\t%s\n", name, varClass, isReadonly ? "T" : "F", isContinous ? "T" : "F", isAtomic ? "T" : "F", desc); } err = MPI_T_cvar_get_num(&numCvar); if(err) MPI_Abort(MPI_COMM_WORLD, 0); printf("\n%d MPI Control Variables\n", numCvar); for(i = 0; i < numCvar; i++) { nameLen = sizeof(name); descLen = sizeof(desc); err = MPI_T_cvar_get_info(i, name, &nameLen, &verbosity, &datatype, &enumtype, desc, &descLen, &binding, &scope); if(err) { printf("Failed to read Cvar %d/%d\n", i, numCvar); } printf("\t%s\tClass-%d\tScope-%d\t%s\n", name, varClass, scope, desc); } MPI_T_finalize(); MPI_Finalize(); return 0; }