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

📄 topo_unity_cart_map.c

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 C
字号:
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana *                         University Research and Technology *                         Corporation.  All rights reserved. * Copyright (c) 2004-2005 The University of Tennessee and The University *                         of Tennessee Research Foundation.  All rights *                         reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,  *                         University of Stuttgart.  All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. *                         All rights reserved. * $COPYRIGHT$ *  * Additional copyrights may follow *  * $HEADER$ */ #include "ompi_config.h"#include "ompi/mca/topo/unity/topo_unity.h"#include "ompi/communicator/communicator.h"/* * function - mca_topo_unity_cart_map * *  @param comm input communicator (handle) *  @param ndims number of dimensions of cartesian structure (integer) *  @param dims integer array of size 'ndims' specifying the number of *              processes in each coordinate direction *  @param periods logical array of size 'ndims' specifying the  *                 periodicity specification in each coordinate direction *  @param newrank reordered rank of the calling process; 'MPI_UNDEFINED'  *                 if calling process does not belong to grid (integer) * *  @retval MPI_SUCCESS                *  @retval MPI_ERR_DIMS                */int mca_topo_unity_cart_map (MPI_Comm comm,                             int ndims,                             int *dims,                             int *periods,                             int *newrank){    int nprocs;    int rank;    int size;    int i;    int *p;    /*     * Compute the # of processes in the grid.     */    nprocs = 1;    for (i = 0, p = dims; i < ndims; ++i, ++p) {        if (*p <= 0) {            return MPI_ERR_DIMS;        }        nprocs *= *p;    }    /*     * Check that number of processes <= size of communicator.     */    size = ompi_comm_size(comm);    if (nprocs > size) {        return MPI_ERR_DIMS;    }    /*     * Compute my new rank.     */    rank = ompi_comm_rank(comm);    *newrank = ((rank < 0) || (rank >= nprocs)) ? MPI_UNDEFINED : rank;    return MPI_SUCCESS;}

⌨️ 快捷键说明

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