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

📄 setinfox.cxx

📁 mpi并行计算的c++代码 可用vc或gcc编译通过 可以用来搭建并行计算试验环境
💻 CXX
字号:
/* -*- Mode: C++; c-basic-offset:4 ; -*- *//* * *  (C) 2003 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#include "mpi.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 often need the std namespace; otherwise, a bare "cout"// is likely to fail to compileusing namespace std;#endif#else#include <iostream.h>#endif#ifdef HAVE_STRING_H#include <string.h>#endif#include "mpitestcxx.h"static char MTEST_Descrip[] = "Test file_set_view";/*  * access style is explicitly described as modifiable.  values include * read_once, read_mostly, write_once, write_mostlye, random * *  */int main( int argc, char *argv[] ){    int             errs = 0, err;    int             buf[10];    int             rank;    MPI::Intracomm  comm;    MPI::Status     status;    MPI::File       fh;    MPI::Info       infoin, infoout;    char            value[1024];    bool            flag;    int             count;    MTest_Init( );    comm = MPI::COMM_WORLD;    rank = comm.Get_rank();    infoin = MPI::Info::Create();    infoin.Set( "access_style", "write_once,random" );    fh = MPI::File::Open( comm, "testfile", MPI::MODE_RDWR | MPI::MODE_CREATE,			  infoin);    buf[0] = rank;    try {	fh.Write_ordered( buf, 1, MPI::INT );    } catch ( MPI::Exception e  ) {	errs ++;	MTestPrintError( e.Get_error_code() );    }    infoin.Set( "access_style", "read_once" );    try {	fh.Seek_shared( 0, MPI_SEEK_SET );   // Use MPI_xx to avoid problems with SEEK_SET    } catch ( MPI::Exception e ) {	errs ++;	MTestPrintError( e.Get_error_code() );    }    try {	fh.Set_info( infoin );    } catch ( MPI::Exception e ) {	errs ++;	MTestPrintError( e.Get_error_code() );    }    buf[0] = -1;        try {	fh.Read_ordered( buf, 1, MPI::INT, status );    } catch ( MPI::Exception e ) {	errs ++;	MTestPrintError( e.Get_error_code() );    }    count = status.Get_count( MPI::INT );    if (count != 1) {	errs++;	cout << "Expected to read one int, read " << count << "\n";    }    if (buf[0] != rank) {	errs++;	cout << "Did not read expected value (" << buf[0] << ")\n";    }    try {	infoout = fh.Get_info();    } catch ( MPI::Exception e ) {	errs ++;	MTestPrintError( e.Get_error_code() );    }    flag = infoout.Get( "access_style", 1024, value );    /* Note that an implementation is allowed to ignore the set_info,       so we'll accept either the original or the updated version */    if (!flag) {	;	/*	errs++;	printf( "Access style hint not saved\n" );	*/    }    else {	if (strcmp( value, "read_once" ) != 0 &&	    strcmp( value, "write_once,random" ) != 0) {	    errs++;	    cout << "value for access_style unexpected; is " << value << "\n";	}    }    infoout.Free();    try {	fh.Close();    } catch ( MPI::Exception e ) {	errs ++;	MTestPrintError( e.Get_error_code() );    }    comm.Barrier();    rank = comm.Get_rank();    if (rank == 0) {	try {	    MPI::File::Delete( "testfile", MPI::INFO_NULL );	} catch ( MPI::Exception e ) {	    errs ++;	    MTestPrintError( e.Get_error_code() );	}    }        MTest_Finalize( errs );    MPI::Finalize( );    return 0;}

⌨️ 快捷键说明

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