Ejemplo n.º 1
0
void cmpif2readtype_( MPI_Fint *ftype, MPI_Fint *fkey, MPI_Aint *expected, 
		      MPI_Fint *errs, const char *msg, int msglen )
{
    void *attrval;
    int  flag, result;
    MPI_Datatype dtype = MPI_Type_f2c( *ftype );
    char lmsg[MAX_ATTRTEST_MSG];

    if (msglen > sizeof(lmsg)- 1) {
	fprintf( stderr, "Message too long for buffer (%d)\n", msglen );
	MPI_Abort( MPI_COMM_WORLD, 1 );
    }

    MPI_Type_get_attr( dtype, *fkey, &attrval, &flag );
    if (!flag) {
	*errs = *errs + 1;
	strncpy( lmsg, msg, msglen );
	lmsg[msglen] = 0;
	printf( " Error: flag false for Type_get_attr (set in F2): %s\n", lmsg );
	return;
    }
    ccompareaint2void_( expected, attrval, &result );
    if (!result) {
	*errs = *errs + 1;
	strncpy( lmsg, msg, msglen );
	lmsg[msglen] = 0;
	printf( " Error: (set in F2/Type) expected %ld but saw %ld: %s\n", 
		(long)*expected, (long)*(MPI_Aint*)attrval, lmsg );
	return;
    }
    return;
}
Ejemplo n.º 2
0
JNIEXPORT jobject JNICALL Java_mpi_Datatype_getAttr(
        JNIEnv *env, jobject jthis, jlong type, jint keyval)
{
    int flag;
    void *val;
    int rc = MPI_Type_get_attr((MPI_Datatype)type, keyval, &val, &flag);

    if(ompi_java_exceptionCheck(env, rc) || !flag)
        return NULL;

    return ompi_java_attrGet(env, val);
}
Ejemplo n.º 3
0
int cmpi2readtype( MPI_Datatype dtype, int key, void *expected, const char *msg )
{
    void *attrval;
    int  flag;
    MPI_Type_get_attr( dtype, key, &attrval, &flag );
    if (!flag) {
	printf( " Error: flag false for Type_get_attr: %s\n", msg );
	return 1;
    }
    if (attrval != expected) {
	printf( " Error: expected %p but saw %p: %s\n", expected, attrval, msg );
	return 1;
    }
    return 0;
}
Ejemplo n.º 4
0
int checkNoAttrs( MPI_Datatype type, int n, int key[] )
{
    int errs = 0;
    int i, flag, *val_p;

    for (i=0; i<n; i++) {
	MPI_Type_get_attr( type, key[i], &val_p, &flag );
	if (flag) {
	    errs++;
	    fprintf( stderr, "Attribute for key %d set but should be deleted\n", i );
	}
    }

    return errs;
}
Ejemplo n.º 5
0
int checkAttrs( MPI_Datatype type, int n, int key[], int attrval[] )
{
    int errs = 0;
    int i, flag, *val_p;

    for (i=0; i<n; i++) {
	MPI_Type_get_attr( type, key[i], &val_p, &flag );
	if (!flag) {
	    errs++;
	    fprintf( stderr, "Attribute for key %d not set\n", i );
	}
	else if (val_p != &attrval[i]) {
	    errs++;
	    fprintf( stderr, "Attribute value for key %d not correct\n",
		     i );
	}
    }

    return errs;
}