ad_piofs_iwrite.c

来自「MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程」· C语言 代码 · 共 72 行

C
72
字号
/* -*- Mode: C; c-basic-offset:4 ; -*- *//*  *   $Id: ad_piofs_iwrite.c,v 1.4 2002/10/24 17:00:55 gropp Exp $     * *   Copyright (C) 1997 University of Chicago.  *   See COPYRIGHT notice in top-level directory. */#include "ad_piofs.h"void ADIOI_PIOFS_IwriteContig(ADIO_File fd, void *buf, int count,                 MPI_Datatype datatype, int file_ptr_type,                ADIO_Offset offset, ADIO_Request *request, int *error_code)  {    ADIO_Status status;    int len, typesize;/* PIOFS does not support nonblocking I/O. Therefore, use blocking I/O */    *request = ADIOI_Malloc_request();    (*request)->optype = ADIOI_WRITE;    (*request)->fd = fd;    (*request)->queued = 0;    (*request)->datatype = datatype;    MPI_Type_size(datatype, &typesize);    len = count * typesize;    ADIOI_PIOFS_WriteContig(fd, buf, len, MPI_BYTE, file_ptr_type, offset, &status,		    error_code);  #ifdef HAVE_STATUS_SET_BYTES    if (*error_code == MPI_SUCCESS) {	MPI_Get_elements(&status, MPI_BYTE, &len);	(*request)->nbytes = len;    }#endif    fd->async_count++;}void ADIOI_PIOFS_IwriteStrided(ADIO_File fd, void *buf, int count, 		       MPI_Datatype datatype, int file_ptr_type,                       ADIO_Offset offset, ADIO_Request *request, int                       *error_code){    ADIO_Status status;#ifdef HAVE_STATUS_SET_BYTES    int typesize;#endif/* PIOFS does not support nonblocking I/O. Therefore, use blocking I/O */    *request = ADIOI_Malloc_request();    (*request)->optype = ADIOI_WRITE;    (*request)->fd = fd;    (*request)->queued = 0;    (*request)->datatype = datatype;    ADIOI_PIOFS_WriteStrided(fd, buf, count, datatype, file_ptr_type, 			    offset, &status, error_code);      fd->async_count++;#ifdef HAVE_STATUS_SET_BYTES    if (*error_code == MPI_SUCCESS) {	MPI_Type_size(datatype, &typesize);	(*request)->nbytes = count * typesize;    }#endif}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?