⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad_bgl_pset.c

📁 fortran并行计算包
💻 C
字号:
/* ---------------------------------------------------------------- *//* (C)Copyright IBM Corp.  2007, 2008                               *//* ---------------------------------------------------------------- *//** * \file ad_bgl_pset.c * \brief Definition of functions associated to structs ADIOI_BGL_ProcInfo_t and ADIOI_BGL_ConfInfo_t  *//* -*- Mode: C; c-basic-offset:4 ; -*- *//*  *   Copyright (C) 1997 University of Chicago.  *   See COPYRIGHT notice in top-level directory. */#include <stdlib.h>#include "ad_bgl.h"#include "ad_bgl_pset.h"#include "mpidimpl.h"ADIOI_BGL_ProcInfo_t *ADIOI_BGL_ProcInfo_new(){    ADIOI_BGL_ProcInfo_t *p = (ADIOI_BGL_ProcInfo_t *) ADIOI_Malloc (sizeof(ADIOI_BGL_ProcInfo_t));    AD_BGL_assert ((p != NULL));    return p;}ADIOI_BGL_ProcInfo_t *ADIOI_BGL_ProcInfo_new_n( int n ){    ADIOI_BGL_ProcInfo_t *p = (ADIOI_BGL_ProcInfo_t *) ADIOI_Malloc (n * sizeof(ADIOI_BGL_ProcInfo_t));    AD_BGL_assert ((p != NULL));    return p;}voidADIOI_BGL_ProcInfo_free( ADIOI_BGL_ProcInfo_t *info ){    if (info != NULL) ADIOI_Free (info);}staticvoid ADIOI_BGL_ProcInfo_set(ADIOI_BGL_ProcInfo_t *info, const DCMF_Hardware_t *hw, int r){    info->psetNum    = hw->idOfPset;    info->xInPset    = hw->xCoord;    info->yInPset    = hw->yCoord;    info->zInPset    = hw->zCoord;    info->cpuid      = hw->tCoord;    info->rank       = r;    info->rankInPset = hw->rankInPset;}ADIOI_BGL_ConfInfo_t *ADIOI_BGL_ConfInfo_new (){    ADIOI_BGL_ConfInfo_t *p = (ADIOI_BGL_ConfInfo_t *) ADIOI_Malloc (sizeof(ADIOI_BGL_ConfInfo_t));    AD_BGL_assert ((p != NULL));    return p;}staticvoidADIOI_BGL_ConfInfo_set(ADIOI_BGL_ConfInfo_t *info, const DCMF_Hardware_t *hw, int s, int n_aggrs){    info->PsetSize        = hw->sizeOfPset;    info->numPsets        = (hw->xSize * hw->ySize *					hw->zSize) / hw->sizeOfPset;    info->isVNM           = (hw->tSize != 1);    info->cpuidSize       = hw->tSize;    info->virtualPsetSize = hw->sizeOfPset * hw->tSize;    info->nProcs          = s;    /* More complicated logic maybe needed for nAggrs specification */    info->nAggrs          = n_aggrs;    if ( info->nAggrs <=0 || MIN(info->nProcs, info->virtualPsetSize) < info->nAggrs )         info->nAggrs      = ADIOI_BGL_NAGG_PSET_DFLT;    if ( info->nAggrs > info->virtualPsetSize ) info->nAggrs = info->virtualPsetSize;    info->aggRatio        = 1. * info->nAggrs / info->virtualPsetSize;    if (info->aggRatio > 1) info->aggRatio = 1.;}voidADIOI_BGL_ConfInfo_free( ADIOI_BGL_ConfInfo_t *info ){    if (info != NULL) ADIOI_Free (info);}void ADIOI_BGL_persInfo_init(ADIOI_BGL_ConfInfo_t *conf, 			ADIOI_BGL_ProcInfo_t *proc, 			int s, int r, int n_aggrs){    DCMF_Hardware_t hw;    DCMF_Hardware(&hw);    ADIOI_BGL_ConfInfo_set (conf, &hw, s, n_aggrs);    ADIOI_BGL_ProcInfo_set (proc, &hw, r);}void ADIOI_BGL_persInfo_free( ADIOI_BGL_ConfInfo_t *conf, ADIOI_BGL_ProcInfo_t *proc ){    ADIOI_BGL_ConfInfo_free( conf );    ADIOI_BGL_ProcInfo_free( proc );}

⌨️ 快捷键说明

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