1 /***************************************************************************** 2 * * 3 * Copyright (c) 2003-2006 Intel Corporation. * 4 * All rights reserved. * 5 * * 6 ***************************************************************************** 7 8 This code is covered by the Community Source License (CPL), version 9 1.0 as published by IBM and reproduced in the file "license.txt" in the 10 "license" subdirectory. Redistribution in source and binary form, with 11 or without modification, is permitted ONLY within the regulations 12 contained in above mentioned license. 13 14 Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY 15 within the regulations of the "License for Use of "Intel(R) MPI 16 Benchmarks" Name and Trademark" as reproduced in the file 17 "use-of-trademark-license.txt" in the "license" subdirectory. 18 19 THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR 20 CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT 21 LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, 22 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is 23 solely responsible for determining the appropriateness of using and 24 distributing the Program and assumes all risks associated with its 25 exercise of rights under this Agreement, including but not limited to 26 the risks and costs of program errors, compliance with applicable 27 laws, damage to or loss of data, programs or equipment, and 28 unavailability or interruption of operations. 29 30 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR 31 ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, 32 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING 33 WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF 34 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 35 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR 36 DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED 37 HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 38 39 EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF 40 YOUR JURISDICTION. It is licensee's responsibility to comply with any 41 export regulations applicable in licensee's jurisdiction. Under 42 CURRENT U.S. export regulations this software is eligible for export 43 from the U.S. and can be downloaded by or otherwise exported or 44 reexported worldwide EXCEPT to U.S. embargoed destinations which 45 include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, 46 Afghanistan and any other country to which the U.S. has embargoed 47 goods and services. 48 49 *************************************************************************** 50 51 For more documentation than found here, see 52 53 [1] doc/ReadMe_IMB.txt 54 55 [2] Intel (R) MPI Benchmarks 56 Users Guide and Methodology Description 57 In 58 doc/IMB_ug.pdf 59 60 ***************************************************************************/ 61 62 63 64 65 66 #ifndef _COMM_INFO_H 67 #define _COMM_INFO_H 68 69 #include "IMB_declare.h" 70 71 72 #ifdef MPIIO 73 typedef struct { int Locsize; MPI_Offset Offset; int Totalsize;} SPLITTING; 74 #endif 75 76 struct comm_info 77 { 78 /* Communication information as for MPI-1/2 parts */ 79 80 int w_num_procs; /* number of procs in COMM_WORLD */ 81 int w_rank; /* rank of actual process in COMM_WORLD */ 82 83 int NP; /* #processes participating in benchmarks */ 84 int px,py; /* processes are part of px x py topology */ 85 86 MPI_Comm communicator; /* underlying communicator for benchmark(s) */ 87 88 int num_procs; /* number of processes in communicator */ 89 int rank; /* rank of actual process in communicator */ 90 91 MPI_Datatype s_data_type; /* data type of sent data */ 92 MPI_Datatype r_data_type; /* data type of received data */ 93 94 MPI_Datatype red_data_type;/* data type of reduced data */ 95 MPI_Op op_type; /* operation type */ 96 97 int pair0, pair1; /* process pair */ 98 int select_tag; /* 0/1 for tag selection off/on */ 99 int select_source; /* 0/1 for sender selection off/on */ 100 101 void* s_buffer; /* send buffer */ 102 assign_type* s_data; /* assign_type equivalent of s_buffer */ 103 int s_alloc; /* #bytes allocated in s_buffer */ 104 void* r_buffer; /* receive buffer */ 105 assign_type* r_data; /* assign_type equivalent of r_buffer */ 106 int r_alloc; /* #bytes allocated in r_buffer */ 107 108 int n_lens; /* # of selected lengths by -msglen option */ 109 int* msglen; /* list of " " " */ 110 111 int group_mode; /* Mode of running groups (<0,0,>0) */ 112 int n_groups; /* No. of independent groups */ 113 int group_no; /* own group index */ 114 int* g_sizes; /* array of group sizes */ 115 int* g_ranks; /* w_ranks constituting the groups */ 116 117 int* sndcnt; /* send count argument for global ops. */ 118 int* sdispl; /* displacement argument for global ops. */ 119 int* reccnt; /* recv count argument for global ops. */ 120 int* rdispl; /* displacement argument for global ops. */ 121 122 MPI_Errhandler ERR; 123 124 #ifdef MPIIO 125 /* FILE INFORMATION */ 126 127 char* filename; 128 MPI_Comm File_comm; 129 int File_num_procs; 130 int all_io_procs; 131 int File_rank; 132 133 MPI_File fh; 134 MPI_Datatype etype; 135 Type_Size e_size; 136 MPI_Datatype filetype; 137 138 SPLITTING split; 139 140 int amode; 141 MPI_Info info; 142 143 /* View: */ 144 MPI_Offset disp; 145 char* datarep; 146 MPI_Datatype view; 147 MPI_Errhandler ERRF; 148 #endif 149 150 #ifdef EXT 151 MPI_Win WIN; 152 MPI_Info info; 153 MPI_Errhandler ERRW; 154 #endif 155 156 157 }; 158 159 #endif 160