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

📄 ioharness.tlt

📁 mpi并行计算的c++代码 可用vc或gcc编译通过 可以用来搭建并行计算试验环境
💻 TLT
字号:
<cxxheader/>#include "mpi.h"// We place stdio.h *after* mpi.h to avoid conflicts with SEEK_SET et al// (the name is #defined in stdio.h and used as an MPI constant// MPI::SEEK_SET in the C++ binding for MPI)#include <stdio.h>#include "mpitestconf.h"#ifdef HAVE_IOSTREAM// Not all C++ compilers have iostream instead of iostream.h#include <iostream>#ifdef HAVE_NAMESPACE_STD// Those that do need the std namespace; otherwise, a bare "cout"// is likely to fail to compileusing namespace std;#endif#else#include <iostream.h>#endif#include <string.h>#include "mpitestcxx.h"#define MAX_FPARM 5#define MAX_BUFFER 65536#define MAX_FTYPE 3// This structure is used to determine how data is placed across the filetypedef struct { int n, b; } fileparm;int main( int argc, char *argv[] ){    int errs = 0;    MPI::Intracomm comm;    MPI::File fh;    int ftype;    int itmp, fparm, n, b, i, k, r, s;    int wrank, wsize;    fileparm fparms[MAX_FPARM] = { 	1,4000,  4000,8,  4096,8,  64000,8,  65536,8 };    char filename[1024];        <writefiledecl/>    <readfiledecl/>    MTest_Init();    wrank = MPI::COMM_WORLD.Get_rank();    wsize = MPI::COMM_WORLD.Get_size();    for (ftype=0; ftype<MAX_FTYPE; ftype++) {	strcpy( filename, "iotest.txt" );	switch (ftype) {	case 0:	    comm = MPI::COMM_WORLD;	    break;	case 1:	    comm = MPI::COMM_WORLD.Split( 0, wsize - wrank );	    break;	default:	    itmp = (wrank == 0) ? 0 : 1;	    comm = MPI::COMM_WORLD.Split( itmp, wrank );            if (wrank == 0) {		comm.Free();		continue;            }        }	s = comm.Get_size();	r = comm.Get_rank();	for (fparm=0; fparm<MAX_FPARM; fparm++) {	    n = fparms[fparm].n;	    b = fparms[fparm].b;	    // Try writing the file, then check it            <openfile/>            <writefile/>            <closefile/>            <checkfile/>	    // Now, open the same file for reading            <openfile/>            <readfile/>            <closefile/>            <deletefile/>        }        if (comm != MPI::COMM_WORLD) {	    comm.Free();	}    }    MTest_Finalize( errs );    MPI::Finalize( );    return 0;}

⌨️ 快捷键说明

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