亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? io_romio_ad_hints.c

?? MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
?? C
字號:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//*  * *   Copyright (C) 1997 University of Chicago.  *   See COPYRIGHT notice in top-level directory. */#include "ompi_config.h"#include "opal/mca/base/mca_base_param.h"#include "adio.h"#include "adio_extern.h"void ADIOI_GEN_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code){/* if fd->info is null, create a new info object.    Initialize fd->info to default values.   Initialize fd->hints to default values.   Examine the info object passed by the user. If it contains values that   ROMIO understands, override the default. */    MPI_Info info;    char *value;    int flag, intval, tmp_val, nprocs=0, nprocs_is_valid = 0, len;    static char myname[] = "ADIOI_GEN_SETINFO";    int ompi_parallel_opts = 0;    mca_base_param_lookup_int(mca_base_param_find("io", "romio",                                                   "enable_parallel_optimizations"),                              &ompi_parallel_opts);    if (fd->info == MPI_INFO_NULL) MPI_Info_create(&(fd->info));    info = fd->info;    /* Note that fd->hints is allocated at file open time; thus it is     * not necessary to allocate it, or check for allocation, here.     */    value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));    if (value == NULL) {	/* NEED TO HANDLE ENOMEM */    }    /* initialize info and hints to default values if they haven't been     * previously initialized     */    if (!fd->hints->initialized) {        if (ompi_parallel_opts != 0) {            MPI_Info_set(info, "ompi_enable_parallel_optimizations", "true");        }	/* buffer size for collective I/O */	MPI_Info_set(info, "cb_buffer_size", ADIOI_CB_BUFFER_SIZE_DFLT); 	fd->hints->cb_buffer_size = atoi(ADIOI_CB_BUFFER_SIZE_DFLT);	/* default is to let romio automatically decide when to use	 * collective buffering	 */	MPI_Info_set(info, "romio_cb_read", "automatic"); 	fd->hints->cb_read = ADIOI_HINT_AUTO;        if (ompi_parallel_opts != 0) {            MPI_Info_set(info, "romio_cb_write", "enable");             fd->hints->cb_write = ADIOI_HINT_ENABLE;        } else {            MPI_Info_set(info, "romio_cb_write", "automatic");             fd->hints->cb_write = ADIOI_HINT_AUTO;        }	fd->hints->cb_config_list = NULL;	/* number of processes that perform I/O in collective I/O */	MPI_Comm_size(fd->comm, &nprocs);	nprocs_is_valid = 1;	ADIOI_Snprintf(value, MPI_MAX_INFO_VAL+1, "%d", nprocs);	MPI_Info_set(info, "cb_nodes", value);	fd->hints->cb_nodes = nprocs;	/* hint indicating that no indep. I/O will be performed on this file */	MPI_Info_set(info, "romio_no_indep_rw", "false");	fd->hints->no_indep_rw = 0;	 /* deferred_open derrived from no_indep_rw and cb_{read,write} */	fd->hints->deferred_open = 0;	/* buffer size for data sieving in independent reads */	MPI_Info_set(info, "ind_rd_buffer_size", ADIOI_IND_RD_BUFFER_SIZE_DFLT);	fd->hints->ind_rd_buffer_size = atoi(ADIOI_IND_RD_BUFFER_SIZE_DFLT);	/* buffer size for data sieving in independent writes */	MPI_Info_set(info, "ind_wr_buffer_size", ADIOI_IND_WR_BUFFER_SIZE_DFLT);	fd->hints->ind_wr_buffer_size = atoi(ADIOI_IND_WR_BUFFER_SIZE_DFLT);	/* default is to let romio automatically decide when to use data	 * sieving	 */	MPI_Info_set(info, "romio_ds_read", "automatic"); 	fd->hints->ds_read = ADIOI_HINT_AUTO;	MPI_Info_set(info, "romio_ds_write", "automatic"); 	fd->hints->ds_write = ADIOI_HINT_AUTO;	fd->hints->initialized = 1;    }    /* add in user's info if supplied */    if (users_info != MPI_INFO_NULL) {	MPI_Info_get(users_info, "cb_buffer_size", MPI_MAX_INFO_VAL, 		     value, &flag);	if (flag && ((intval=atoi(value)) > 0)) {	    tmp_val = intval;	    MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);	    /* --BEGIN ERROR HANDLING-- */	    if (tmp_val != intval) {		MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,						   "cb_buffer_size",						   error_code);		return;	    }	    /* --END ERROR HANDLING-- */	    MPI_Info_set(info, "cb_buffer_size", value);	    fd->hints->cb_buffer_size = intval;	}	/* new hints for enabling/disabling coll. buffering on	 * reads/writes	 */	MPI_Info_get(users_info, "romio_cb_read", MPI_MAX_INFO_VAL, value, &flag);	if (flag) {	    if (!strcmp(value, "enable") || !strcmp(value, "ENABLE")) {		MPI_Info_set(info, "romio_cb_read", value);		fd->hints->cb_read = ADIOI_HINT_ENABLE;	    }	    else if (!strcmp(value, "disable") || !strcmp(value, "DISABLE")) {		    /* romio_cb_read overrides no_indep_rw */		MPI_Info_set(info, "romio_cb_read", value);		MPI_Info_set(info, "romio_no_indep_rw", "false");		fd->hints->cb_read = ADIOI_HINT_DISABLE;		fd->hints->no_indep_rw = ADIOI_HINT_DISABLE;	    }	    else if (!strcmp(value, "automatic") || !strcmp(value, "AUTOMATIC"))	    {		MPI_Info_set(info, "romio_cb_read", value);		fd->hints->cb_read = ADIOI_HINT_AUTO;	    }	    tmp_val = fd->hints->cb_read;	    MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);	    /* --BEGIN ERROR HANDLING-- */	    if (tmp_val != fd->hints->cb_read) {		MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,						   "romio_cb_read",						   error_code);		return;	    }	    /* --END ERROR HANDLING-- */	}	MPI_Info_get(users_info, "romio_cb_write", MPI_MAX_INFO_VAL, value,		     &flag);	if (flag) {	    if (!strcmp(value, "enable") || !strcmp(value, "ENABLE")) {		MPI_Info_set(info, "romio_cb_write", value);		fd->hints->cb_write = ADIOI_HINT_ENABLE;	    }	    else if (!strcmp(value, "disable") || !strcmp(value, "DISABLE"))	    {		/* romio_cb_write overrides no_indep_rw, too */		MPI_Info_set(info, "romio_cb_write", value);		MPI_Info_set(info, "romio_no_indep_rw", "false");		fd->hints->cb_write = ADIOI_HINT_DISABLE;		fd->hints->no_indep_rw = ADIOI_HINT_DISABLE;	    }	    else if (!strcmp(value, "automatic") ||		     !strcmp(value, "AUTOMATIC"))	    {		MPI_Info_set(info, "romio_cb_write", value);		fd->hints->cb_write = ADIOI_HINT_AUTO;	    }		    tmp_val = fd->hints->cb_write;	    MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);	    /* --BEGIN ERROR HANDLING-- */	    if (tmp_val != fd->hints->cb_write) {		MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,						   "romio_cb_write",						   error_code);		return;	    }	    /* --END ERROR HANDLING-- */	}	/* new hint for specifying no indep. read/write will be performed */	MPI_Info_get(users_info, "romio_no_indep_rw", MPI_MAX_INFO_VAL, value,		     &flag);	if (flag) {	    if (!strcmp(value, "true") || !strcmp(value, "TRUE")) {		    /* if 'no_indep_rw' set, also hint that we will do		     * collective buffering: if we aren't doing independent io,		     * then we have to do collective  */		MPI_Info_set(info, "romio_no_indep_rw", value);		MPI_Info_set(info, "romio_cb_write", "enable");		MPI_Info_set(info, "romio_cb_read", "enable");		fd->hints->no_indep_rw = 1;		fd->hints->cb_read = 1;		fd->hints->cb_write = 1;		tmp_val = 1;	    }	    else if (!strcmp(value, "false") || !strcmp(value, "FALSE")) {		MPI_Info_set(info, "romio_no_indep_rw", value);		fd->hints->no_indep_rw = 0;		tmp_val = 0;	    }	    else {		/* default is above */		tmp_val = 0;	    }	    MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);	    /* --BEGIN ERROR HANDLING-- */	    if (tmp_val != fd->hints->no_indep_rw) {		MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,						   "romio_no_indep_rw",						   error_code);		return;	    }	    /* --END ERROR HANDLING-- */	}	/* new hints for enabling/disabling data sieving on	 * reads/writes	 */	MPI_Info_get(users_info, "romio_ds_read", MPI_MAX_INFO_VAL, value, 		     &flag);	if (flag) {	    if (!strcmp(value, "enable") || !strcmp(value, "ENABLE")) {		MPI_Info_set(info, "romio_ds_read", value);		fd->hints->ds_read = ADIOI_HINT_ENABLE;	    }	    else if (!strcmp(value, "disable") || !strcmp(value, "DISABLE")) {		MPI_Info_set(info, "romio_ds_read", value);		fd->hints->ds_read = ADIOI_HINT_DISABLE;	    }	    else if (!strcmp(value, "automatic") || !strcmp(value, "AUTOMATIC"))	    {		MPI_Info_set(info, "romio_ds_read", value);		fd->hints->ds_read = ADIOI_HINT_AUTO;	    }	    /* otherwise ignore */	}	MPI_Info_get(users_info, "romio_ds_write", MPI_MAX_INFO_VAL, value, 		     &flag);	if (flag) {	    if (!strcmp(value, "enable") || !strcmp(value, "ENABLE")) {		MPI_Info_set(info, "romio_ds_write", value);		fd->hints->ds_write = ADIOI_HINT_ENABLE;	    }	    else if (!strcmp(value, "disable") || !strcmp(value, "DISABLE")) {		MPI_Info_set(info, "romio_ds_write", value);		fd->hints->ds_write = ADIOI_HINT_DISABLE;	    }	    else if (!strcmp(value, "automatic") || !strcmp(value, "AUTOMATIC"))	    {		MPI_Info_set(info, "romio_ds_write", value);		fd->hints->ds_write = ADIOI_HINT_AUTO;	    }	    /* otherwise ignore */	}	MPI_Info_get(users_info, "cb_nodes", MPI_MAX_INFO_VAL, 		     value, &flag);	if (flag && ((intval=atoi(value)) > 0)) {	    tmp_val = intval;	    MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);	    /* --BEGIN ERROR HANDLING-- */	    if (tmp_val != intval) {		    MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,						       "cb_nodes",						       error_code);		    return;	    }	    /* --END ERROR HANDLING-- */	    if (!nprocs_is_valid) {		/* if hints were already initialized, we might not		 * have already gotten this?		 */		MPI_Comm_size(fd->comm, &nprocs);		nprocs_is_valid = 1;	    }	    if (intval < nprocs) {		MPI_Info_set(info, "cb_nodes", value);		fd->hints->cb_nodes = intval;	    }        } else {            /* OMPI: allow run-time override of cb_nodes during collective calls */            if (ompi_parallel_opts != 0) {                MPI_Info_set(info, "ompi_cb_nodes_runtime_override", "true");            }        }	MPI_Info_get(users_info, "ind_wr_buffer_size", MPI_MAX_INFO_VAL, 		     value, &flag);	if (flag && ((intval = atoi(value)) > 0)) {	    MPI_Info_set(info, "ind_wr_buffer_size", value);	    fd->hints->ind_wr_buffer_size = intval;	}	MPI_Info_get(users_info, "ind_rd_buffer_size", MPI_MAX_INFO_VAL, 		     value, &flag);	if (flag && ((intval = atoi(value)) > 0)) {	    MPI_Info_set(info, "ind_rd_buffer_size", value);	    fd->hints->ind_rd_buffer_size = intval;	}	MPI_Info_get(users_info, "cb_config_list", MPI_MAX_INFO_VAL,		     value, &flag);	if (flag) {	    if (fd->hints->cb_config_list == NULL) {		/* only set cb_config_list if it isn't already set.		 * Note that since we set it below, this ensures that		 * the cb_config_list hint will be set at file open time		 * either by the user or to the default		 */	    	MPI_Info_set(info, "cb_config_list", value);		len = (strlen(value)+1) * sizeof(char);		fd->hints->cb_config_list = ADIOI_Malloc(len);		if (fd->hints->cb_config_list == NULL) {		    /* NEED TO HANDLE ENOMEM */		}		ADIOI_Strncpy(fd->hints->cb_config_list, value, len);	    }	    /* if it has been set already, we ignore it the second time. 	     * otherwise we would get an error if someone used the same	     * info value with a cb_config_list value in it in a couple	     * of calls, which would be irritating. */	}    }    /* handle cb_config_list default value here; avoids an extra     * free/alloc and insures it is always set     */    if (fd->hints->cb_config_list == NULL) {	MPI_Info_set(info, "cb_config_list", ADIOI_CB_CONFIG_LIST_DFLT);	len = (strlen(ADIOI_CB_CONFIG_LIST_DFLT)+1) * sizeof(char);	fd->hints->cb_config_list = ADIOI_Malloc(len);	if (fd->hints->cb_config_list == NULL) {	    /* NEED TO HANDLE ENOMEM */	}	ADIOI_Strncpy(fd->hints->cb_config_list, ADIOI_CB_CONFIG_LIST_DFLT, len);    }    /* deferred_open won't be set by callers, but if the user doesn't     * explicitly disable collecitve buffering (two-phase) and does hint that     * io w/o independent io is going on, we'll set this internal hint as a     * convenience */    if ( ( (fd->hints->cb_read != ADIOI_HINT_DISABLE) \			    && (fd->hints->cb_write != ADIOI_HINT_DISABLE)\			    && fd->hints->no_indep_rw ) ) {	    fd->hints->deferred_open = 1;    } else {	    /* setting romio_no_indep_rw enable and romio_cb_{read,write}	     * disable at the same time doesn't make sense. honor	     * romio_cb_{read,write} and force the no_indep_rw hint to	     * 'disable' */	    MPI_Info_set(info, "romio_no_indep_rw", "false");	    fd->hints->no_indep_rw = 0;	    fd->hints->deferred_open = 0;    }    if ((fd->file_system == ADIO_PIOFS) || (fd->file_system == ADIO_PVFS) ||		    (fd->file_system == ADIO_PVFS2) ) {    /* no data sieving for writes in PIOFS, PVFS and PVFS2, because they do not       support file locking */       	MPI_Info_get(info, "ind_wr_buffer_size", MPI_MAX_INFO_VAL,		     value, &flag);	if (flag) {	    /* get rid of this value if it is set */	    MPI_Info_delete(info, "ind_wr_buffer_size");	}	/* note: leave ind_wr_buffer_size alone; used for other cases	 * as well. -- Rob Ross, 04/22/2003	 */	MPI_Info_set(info, "romio_ds_write", "disable");	fd->hints->ds_write = ADIOI_HINT_DISABLE;    }    ADIOI_Free(value);    *error_code = MPI_SUCCESS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产凹凸成av人网站| 欧美无乱码久久久免费午夜一区 | 精品日产卡一卡二卡麻豆| 在线一区二区三区四区五区| 色综合久久中文综合久久牛| 色欧美日韩亚洲| 欧美午夜精品久久久久久孕妇| 色又黄又爽网站www久久| 在线亚洲一区观看| 欧美另类高清zo欧美| 日韩视频免费观看高清完整版| 亚洲精品在线免费观看视频| 26uuu国产日韩综合| 国产日本欧洲亚洲| 亚洲欧美日韩精品久久久久| 亚洲精品国产精华液| 亚洲国产精品久久久久秋霞影院 | 国产伦精品一区二区三区免费迷| 国产一区二区伦理| 高清日韩电视剧大全免费| 国产福利一区二区| 色先锋资源久久综合| 欧美无砖专区一中文字| 日韩欧美一二区| 国产日韩欧美一区二区三区综合 | 亚洲一区二区三区小说| 日本不卡一二三区黄网| 国产成人在线看| 欧美综合久久久| 久久综合久久综合久久综合| 国产精品久久久久四虎| 日日嗨av一区二区三区四区| 国产成人福利片| 欧美日韩国产精选| 日本一区二区三区免费乱视频| 亚洲激情六月丁香| 久久99国产精品尤物| 99精品国产一区二区三区不卡| 欧美日韩视频不卡| 国产亚洲精品bt天堂精选| 亚洲国产精品久久人人爱| 国产精品影音先锋| 91精品国产综合久久久久久久久久| 精品福利视频一区二区三区| 亚洲日本一区二区| 国产精品一二三区| 日韩美一区二区三区| 亚洲人123区| 成人性生交大合| 日韩精品一区国产麻豆| 亚洲国产视频a| 99久久伊人网影院| 国产三级欧美三级| 久久成人免费网| 欧美日韩国产不卡| 夜夜嗨av一区二区三区网页| 国产精品一区二区在线看| 欧美一级高清大全免费观看| 国产精品国产自产拍高清av王其 | 色综合天天综合网天天看片| 精品国产一区久久| 日日嗨av一区二区三区四区| 欧美在线高清视频| 亚洲美女免费视频| 色拍拍在线精品视频8848| 中文字幕精品三区| 成人高清伦理免费影院在线观看| 精品人在线二区三区| 日韩高清在线一区| 91精品国产综合久久精品| 亚洲va欧美va人人爽午夜| 在线精品视频小说1| 一区av在线播放| 欧美主播一区二区三区美女| 亚洲视频一区二区在线| 91亚洲国产成人精品一区二三| 国产精品久久久久久久久动漫| 国产xxx精品视频大全| 久久久久久日产精品| 国产电影一区二区三区| 亚洲午夜久久久久久久久电影网| 成人精品视频一区二区三区| 国产清纯白嫩初高生在线观看91 | 亚洲免费av观看| 99免费精品在线| 亚洲综合区在线| 91精品国产综合久久精品麻豆 | 亚洲品质自拍视频| 日本道在线观看一区二区| 亚洲精品国产精华液| 欧美日韩高清一区二区| 久久精品国产精品亚洲红杏| 日韩你懂的电影在线观看| 国产一区二区三区四区在线观看| 国产女人水真多18毛片18精品视频| 高清shemale亚洲人妖| 亚洲人成影院在线观看| 欧美日韩性生活| 麻豆视频观看网址久久| 国产午夜精品美女毛片视频| 91女人视频在线观看| 午夜av区久久| 日本一区二区三区久久久久久久久不| 不卡一区二区三区四区| 亚洲一区二区三区激情| 久久综合色鬼综合色| 在线观看中文字幕不卡| 捆绑调教美女网站视频一区| 中文字幕+乱码+中文字幕一区| 在线观看日韩一区| 国产一区视频导航| 亚洲国产精品影院| 日本一区二区三区高清不卡 | 日韩电影在线一区| 日本一区二区动态图| 欧美电影一区二区| av高清不卡在线| 黑人巨大精品欧美黑白配亚洲| 亚洲欧美日韩在线| 久久久电影一区二区三区| 欧美精三区欧美精三区| 成人高清在线视频| 国产在线麻豆精品观看| 午夜精品久久久久久不卡8050| 欧美激情艳妇裸体舞| 日韩欧美一二三四区| 欧美视频一区二区三区在线观看| 国产麻豆一精品一av一免费| 日韩精品视频网| 男男视频亚洲欧美| 一个色综合av| 亚洲少妇最新在线视频| 国产日韩欧美精品电影三级在线| 91精品在线观看入口| 精品视频色一区| 色噜噜狠狠成人网p站| 盗摄精品av一区二区三区| 国产美女娇喘av呻吟久久| 麻豆高清免费国产一区| 亚洲成人在线网站| 一区二区在线观看视频在线观看| 亚洲国产精品成人综合色在线婷婷| 欧美成人一区二区| 日韩欧美国产一区在线观看| 欧美久久久久中文字幕| 欧美日韩免费观看一区二区三区| 色婷婷av一区二区三区大白胸| 国产99一区视频免费| 国产超碰在线一区| 国产高清不卡一区| 成人av网址在线| 不卡一区中文字幕| 91视频免费看| 欧美天天综合网| 欧美日韩一级片网站| 欧美日韩视频一区二区| 欧美日韩激情一区| 日韩一级免费观看| 精品日韩欧美在线| 日本一区二区三区四区| 国产精品国产三级国产aⅴ原创 | 五月婷婷综合网| 性感美女极品91精品| 日本不卡视频在线| 国产麻豆成人传媒免费观看| 福利电影一区二区三区| 成人免费av资源| 日本精品裸体写真集在线观看| 91丨porny丨中文| 欧美日韩国产精选| 欧美v日韩v国产v| 中文字幕欧美日韩一区| 一区二区三区加勒比av| 日韩不卡手机在线v区| 精品一区二区三区视频 | 不卡的av网站| 欧美亚洲高清一区| 日韩一级片网站| 国产精品国产精品国产专区不蜜| 夜色激情一区二区| 国产一区二区三区不卡在线观看| 成人综合在线观看| 欧美色图在线观看| 国产日韩欧美不卡在线| 夜夜嗨av一区二区三区中文字幕| 免费不卡在线视频| 欧美一区二区福利在线| 久久综合九色综合欧美98| 日韩一区欧美一区| 轻轻草成人在线| 不卡av在线网| 精品少妇一区二区三区在线播放| 国产精品麻豆一区二区 | 精品国产电影一区二区| 亚洲精品国产一区二区三区四区在线| 日韩av电影免费观看高清完整版 | 91一区二区在线观看| 日韩免费观看高清完整版| 亚洲精品国产精品乱码不99| 国产一区二区三区四区五区美女 |