コード例 #1
0
ファイル: mpi_Status.c プロジェクト: urids/XSCALAMPI
jobject ompi_java_status_new(JNIEnv *env, MPI_Status *status)
{
    jlongArray jData = (*env)->NewLongArray(env, 6);
    ompi_java_status_set(env, jData, status);
    jobject jStatus = (*env)->AllocObject(env, ompi_java.StatusClass);
    (*env)->SetObjectField(env, jStatus, ompi_java.StatusData, jData);
    return jStatus;
}
コード例 #2
0
ファイル: mpi_File.c プロジェクト: urids/XSCALAMPI
JNIEXPORT void JNICALL Java_mpi_File_writeOrderedEnd(
        JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
{
    MPI_Status status;
    void *ptr = (*env)->GetDirectBufferAddress(env, buf);
    int rc = MPI_File_write_ordered_end((MPI_File)fh, ptr, &status);
    ompi_java_exceptionCheck(env, rc);
    ompi_java_status_set(env, stat, &status);
}
コード例 #3
0
ファイル: mpi_File.c プロジェクト: abouteiller/ompi-aurelien
JNIEXPORT void JNICALL Java_mpi_File_readAtAllEnd(
        JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
{
    MPI_Status status;
    void *ptr = (*env)->GetDirectBufferAddress(env, buf);
    int rc = MPI_File_read_at_all_end((MPI_File)fh, ptr, &status);
    
    if(!ompi_java_exceptionCheck(env, rc))
        ompi_java_status_set(env, stat, &status);
}
コード例 #4
0
JNIEXPORT jlong JNICALL Java_mpi_Request_waitStatus(
        JNIEnv *env, jobject jthis, jlong handle, jlongArray stat)
{
    MPI_Request req = (MPI_Request)handle;
    MPI_Status status;
    int rc = MPI_Wait(&req, &status);
    ompi_java_exceptionCheck(env, rc);
    ompi_java_status_set(env, stat, &status);
    return (jlong)req;
}
コード例 #5
0
ファイル: mpi_Message.c プロジェクト: 00datman/ompi
JNIEXPORT jlong JNICALL Java_mpi_Message_mProbe(
        JNIEnv *env, jobject jthis,
        jint source, jint tag, jlong jComm, jlongArray jStatus)
{
    MPI_Comm comm = (MPI_Comm)jComm;
    MPI_Message message;
    MPI_Status  status;
    int rc = MPI_Mprobe(source, tag, comm, &message, &status);
    ompi_java_exceptionCheck(env, rc);
    ompi_java_status_set(env, jStatus, &status);
    return (jlong)message;
}
コード例 #6
0
ファイル: mpi_File.c プロジェクト: urids/XSCALAMPI
JNIEXPORT void JNICALL Java_mpi_File_writeOrdered(
        JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
        jint off, jint count, jlong jType, jint bType, jlongArray stat)
{
    MPI_Datatype type = (MPI_Datatype)jType;
    void *ptr;
    ompi_java_buffer_t *item;
    ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
    MPI_Status status;
    int rc = MPI_File_write_ordered((MPI_File)fh, ptr, count, type, &status);
    ompi_java_exceptionCheck(env, rc);
    ompi_java_releaseReadPtr(ptr, item, buf, db);
    ompi_java_status_set(env, stat, &status);
}
コード例 #7
0
ファイル: mpi_File.c プロジェクト: abouteiller/ompi-aurelien
JNIEXPORT void JNICALL Java_mpi_File_readAll(
        JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
        jint off, jint count, jlong jType, jint bType, jlongArray stat)
{
    jboolean exception;
    MPI_Datatype type = (MPI_Datatype)jType;
    void *ptr;
    ompi_java_buffer_t *item;
    ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
    MPI_Status status;
    int rc = MPI_File_read_all((MPI_File)fh, ptr, count, type, &status);
    exception = ompi_java_exceptionCheck(env, rc);
    ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
    
    if(!exception)
        ompi_java_status_set(env, stat, &status);
}
コード例 #8
0
ファイル: mpi_Message.c プロジェクト: 00datman/ompi
JNIEXPORT jlong JNICALL Java_mpi_Message_mRecv(
        JNIEnv *env, jobject jthis, jlong jMessage, jobject buf, jboolean db,
        jint off, jint count, jlong jType, jint bType, jlongArray jStatus)
{
    MPI_Message  message = (MPI_Message)jMessage;
    MPI_Datatype type    = (MPI_Datatype)jType;

    void *ptr;
    ompi_java_buffer_t *item;
    ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);

    MPI_Status status;
    int rc = MPI_Mrecv(ptr, count, type, &message, &status);
    ompi_java_exceptionCheck(env, rc);

    ompi_java_status_set(env, jStatus, &status);
    ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
    return (jlong)message;
}
コード例 #9
0
ファイル: mpi_Status.c プロジェクト: IanYXXL/A1
jlongArray ompi_java_status_new(JNIEnv *env, MPI_Status *status)
{
    jlongArray jData = (*env)->NewLongArray(env, 6);
    ompi_java_status_set(env, jData, status);
    return jData;
}