SIONlib  1.7.4
Scalable I/O library for parallel access to task-local files
ompi_partest.h
1 /****************************************************************************
2 ** SIONLIB http://www.fz-juelich.de/jsc/sionlib **
3 *****************************************************************************
4 ** Copyright (c) 2008-2019 **
5 ** Forschungszentrum Juelich, Juelich Supercomputing Centre **
6 ** **
7 ** See the file COPYRIGHT in the package base directory for details **
8 ****************************************************************************/
9 
10 #ifndef OMPI_PARTEST_H_
11 #define OMPI_PARTEST_H_
12 
13 /* Enable or disable the checksum */
14 #define CHECKSUM
15 #define FNAMELEN 255
16 #define MB *1024*1024
17 #define MAXPE 28*64*1024
18 #define MAXCHARLEN 256
19 
20 #define WAKEUP 102
21 #define COLPRINT 103
22 
23 #include "partest_opts.h"
24 
26  MPI_Comm all; /* all tasks in mpi program */
27  MPI_Comm work; /* all working tasks, e.g. if bluegene_np is used */
28  MPI_Comm workread; /* all working tasks, shifted by read_task_offset, e.g. if bluegene_np is used */
29  MPI_Comm local; /* tasks which should work on the same file */
30  int all_size, all_rank, work_size, work_rank, workread_size, workread_rank, local_size, local_rank;
31  int file_number, ionode_number;
32 };
33 
35 
36 #ifdef SION_OMPI
37 int test_paropen_multi_ompi (char *filename,
38  char *localbuffer,
39  _test_communicators *communicators,
40  _test_options *options
41 );
42 #endif /* SION_OMPI */
43 #ifdef SION_OMP
44 int test_paropen_omp (char *filename,
45  char *localbuffer,
46  _test_communicators *communicators,
47  _test_options *options
48 );
49 #endif /* SION_OMPI */
50 
51 
52 int barrier_after_start (MPI_Comm comm);
53 int barrier_after_malloc(MPI_Comm comm);
54 int barrier_after_open (MPI_Comm comm);
55 int barrier_after_write (MPI_Comm comm);
56 int barrier_after_read (MPI_Comm comm);
57 int barrier_after_close (MPI_Comm comm);
58 int barrier_before_unlink (MPI_Comm comm);
59 int barrier_after_unlink (MPI_Comm comm);
60 
61 int collective_print_gather ( char* cbuffer, MPI_Comm comm);
62 
63 
64 /* Arguments for dtype in reduce_omp*/
65 #define _PARTEST_SION_INT32 10
66 #define _PARTEST_SION_INT64 11
67 #define _PARTEST_DOUBLE 12
68 void reduce_omp(void *syncdata, void * out, MPI_Op op, int dtype);
69 
70 
71 
72 #endif /* PARTEST_H_ */