initial work on romio MCA component
MCA setup 1 wrapper function This commit was SVN r442.
Этот коммит содержится в:
родитель
8db2275df1
Коммит
4717df3979
@ -1,2 +1,5 @@
|
|||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
*.la
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
|
.deps
|
||||||
|
.libs
|
||||||
|
*.la
|
||||||
|
10
src/mca/mpi/io/base/static-modules.h
Обычный файл
10
src/mca/mpi/io/base/static-modules.h
Обычный файл
@ -0,0 +1,10 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern const mca_base_module_t mca_io_romio_module;
|
||||||
|
|
||||||
|
const mca_base_module_t *mca_io_static_modules[] = {
|
||||||
|
&mca_io_romio_module,
|
||||||
|
NULL
|
||||||
|
};
|
@ -5,6 +5,48 @@
|
|||||||
#ifndef MCA_IO_H
|
#ifndef MCA_IO_H
|
||||||
#define MCA_IO_H
|
#define MCA_IO_H
|
||||||
|
|
||||||
/* JMS Need to fill in here */
|
#include "mca/mca.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macro for use in modules that are of type pml v1.0.0
|
||||||
|
*/
|
||||||
|
#define MCA_IO_BASE_VERSION_1_0_0 \
|
||||||
|
MCA_BASE_VERSION_1_0_0, \
|
||||||
|
"io", 1, 0, 0
|
||||||
|
|
||||||
|
#define MCA_IO_BASE_VERSION_2_0_0 \
|
||||||
|
MCA_BASE_VERSION_1_0_0, \
|
||||||
|
"io", 2, 0, 0
|
||||||
|
|
||||||
|
|
||||||
|
struct mca_io_1_0_0_t;
|
||||||
|
typedef struct mca_io_1_0_0_t * (*mca_io_base_module_init_fn_t)(
|
||||||
|
int* priority, int* min_thread, int* max_thread);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* IO module version and interface functions. */
|
||||||
|
struct mca_io_base_module_1_0_0_t {
|
||||||
|
mca_base_module_t version;
|
||||||
|
mca_base_module_data_1_0_0_t data;
|
||||||
|
mca_io_base_module_init_fn_t init;
|
||||||
|
};
|
||||||
|
typedef struct mca_io_base_module_1_0_0_t mca_io_base_module_1_0_0_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct mca_io_1_0_0_t {
|
||||||
|
};
|
||||||
|
typedef struct mca_io_1_0_0_t mca_io_1_0_0_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* MCA_IO_H */
|
#endif /* MCA_IO_H */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
25
src/mca/mpi/io/romio/.cvsignore
Обычный файл
25
src/mca/mpi/io/romio/.cvsignore
Обычный файл
@ -0,0 +1,25 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
acinclude.m4
|
||||||
|
aclocal.m4
|
||||||
|
configure
|
||||||
|
configure.ac
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
libtool
|
||||||
|
autom4te.cache
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
.lam*
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
ltmain.sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
stamp-h1
|
||||||
|
teg_config.h
|
||||||
|
teg_config.h.in
|
37
src/mca/mpi/io/romio/Makefile.am
Обычный файл
37
src/mca/mpi/io/romio/Makefile.am
Обычный файл
@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use the top-level LAM Makefile.options
|
||||||
|
|
||||||
|
include $(top_lam_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
SUBDIRS = src
|
||||||
|
DIST_SUBDIRS = config $(SUBDIRS)
|
||||||
|
|
||||||
|
EXTRA_DIST = VERSION
|
||||||
|
|
||||||
|
# According to the MCA spec, we have to make the output library here
|
||||||
|
# in the top-level directory, and it has to be named
|
||||||
|
# liblam_ssi_coll_lam_basic.la
|
||||||
|
|
||||||
|
if LAM_BUILD_LOADABLE_MODULE
|
||||||
|
module_noinst =
|
||||||
|
module_install = mca_io_romio.la
|
||||||
|
else
|
||||||
|
module_noinst = libmca_mpi_io_romio.la
|
||||||
|
module_install =
|
||||||
|
endif
|
||||||
|
|
||||||
|
mcamoduledir = $(libdir)/lam
|
||||||
|
mcamodule_LTLIBRARIES = $(module_install)
|
||||||
|
mca_io_romio_la_SOURCES =
|
||||||
|
mca_io_romio_la_LIBADD = \
|
||||||
|
src/libmca_io_romio.la \
|
||||||
|
$(LIBLAM_LA)
|
||||||
|
mca_io_romio_la_LDFLAGS = -module -avoid-version
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = $(module_noinst)
|
||||||
|
libmca_mpi_io_romio_la_SOURCES =
|
||||||
|
libmca_mpi_io_romio_la_LIBADD = src/libmca_io_romio.la
|
||||||
|
libmca_mpi_io_romio_la_LDFLAGS = -module -avoid-version
|
6
src/mca/mpi/io/romio/VERSION
Обычный файл
6
src/mca/mpi/io/romio/VERSION
Обычный файл
@ -0,0 +1,6 @@
|
|||||||
|
major=1
|
||||||
|
minor=0
|
||||||
|
release=0
|
||||||
|
alpha=0
|
||||||
|
beta=0
|
||||||
|
cvs=1
|
25
src/mca/mpi/io/romio/config/.cvsignore
Обычный файл
25
src/mca/mpi/io/romio/config/.cvsignore
Обычный файл
@ -0,0 +1,25 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
acinclude.m4
|
||||||
|
aclocal.m4
|
||||||
|
configure
|
||||||
|
configure.ac
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
libtool
|
||||||
|
autom4te.cache
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
.lam*
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
ltmain.sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
stamp-h1
|
||||||
|
teg_config.h
|
||||||
|
teg_config.h.in
|
15
src/mca/mpi/io/romio/config/Makefile.am
Обычный файл
15
src/mca/mpi/io/romio/config/Makefile.am
Обычный файл
@ -0,0 +1,15 @@
|
|||||||
|
# -*- makefile -*-
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(top_lam_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
# This file is only here so that "make dist" grabs all the extra
|
||||||
|
# config-level files that are necessary to build a LAM distribution
|
||||||
|
# tarball. Nothing gets built in this directory.
|
||||||
|
|
||||||
|
# Seems to be an automake bug -- depcomp is not automatically included
|
||||||
|
# in distribution tarballs.
|
||||||
|
|
||||||
|
EXTRA_DIST = depcomp
|
10
src/mca/mpi/io/romio/configure.params
Обычный файл
10
src/mca/mpi/io/romio/configure.params
Обычный файл
@ -0,0 +1,10 @@
|
|||||||
|
# -*- shell-script -*-
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
# Specific to this module
|
||||||
|
|
||||||
|
PARAM_INIT_FILE=src/io_romio_module.c
|
||||||
|
PARAM_CONFIG_HEADER_FILE="src/romio_config.h"
|
||||||
|
PARAM_CONFIG_FILES="Makefile src/Makefile config/Makefile"
|
25
src/mca/mpi/io/romio/src/.cvsignore
Обычный файл
25
src/mca/mpi/io/romio/src/.cvsignore
Обычный файл
@ -0,0 +1,25 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
acinclude.m4
|
||||||
|
aclocal.m4
|
||||||
|
configure
|
||||||
|
configure.ac
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
libtool
|
||||||
|
autom4te.cache
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
.lam*
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
ltmain.sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
stamp-h1
|
||||||
|
romio_config.h
|
||||||
|
romio_config.h.in
|
21
src/mca/mpi/io/romio/src/Makefile.am
Обычный файл
21
src/mca/mpi/io/romio/src/Makefile.am
Обычный файл
@ -0,0 +1,21 @@
|
|||||||
|
# -*- makefile -*-
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(top_lam_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
AM_CPPFLAGS = \
|
||||||
|
-I$(top_lam_builddir)/src/include \
|
||||||
|
-I$(top_lam_srcdir)/src \
|
||||||
|
-I$(top_lam_srcdir)/src/include
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libmca_io_romio.la
|
||||||
|
libmca_io_romio_la_SOURCES = \
|
||||||
|
io_romio_module.c \
|
||||||
|
io_romio.h \
|
||||||
|
romio_config.h \
|
||||||
|
file_write.c \
|
||||||
|
file_open.c \
|
||||||
|
global.c
|
||||||
|
|
4
src/mca/mpi/io/romio/src/file_open.c
Обычный файл
4
src/mca/mpi/io/romio/src/file_open.c
Обычный файл
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
31
src/mca/mpi/io/romio/src/file_write.c
Обычный файл
31
src/mca/mpi/io/romio/src/file_write.c
Обычный файл
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "mpi.h"
|
||||||
|
#include "mpi/file/file.h"
|
||||||
|
#include "io_romio.h"
|
||||||
|
#include "mpi/request/request.h"
|
||||||
|
#include "lam/mem/malloc.h"
|
||||||
|
|
||||||
|
int mca_io_romio_File_iwrite(MPI_File fh, void *buf, int count,
|
||||||
|
MPI_Datatype datatype, lam_request_t **request);
|
||||||
|
int mca_io_romio_File_iwrite(MPI_File fh, void *buf, int count,
|
||||||
|
MPI_Datatype datatype, lam_request_t **request)
|
||||||
|
{
|
||||||
|
mca_io_romio_request_t *rq;
|
||||||
|
mca_io_romio_MPI_File romio_fh;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
rq = LAM_MALLOC(sizeof(mca_io_romio_request_t));
|
||||||
|
*request = (lam_request_t*) rq;
|
||||||
|
(*request)->req_type = LAM_REQUEST_IO;
|
||||||
|
|
||||||
|
romio_fh = fh->f_io_file->romio_fh;
|
||||||
|
|
||||||
|
THREAD_LOCK(&mca_io_romio_mutex);
|
||||||
|
ret=mca_io_romio_MPI_File_iwrite(romio_fh, buf, count, datatype,
|
||||||
|
&rq->romio_rq);
|
||||||
|
THREAD_UNLOCK(&mca_io_romio_mutex);
|
||||||
|
return ret;
|
||||||
|
}
|
6
src/mca/mpi/io/romio/src/global.c
Обычный файл
6
src/mca/mpi/io/romio/src/global.c
Обычный файл
@ -0,0 +1,6 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER
|
||||||
|
*/
|
||||||
|
#include "lam/threads/mutex.h"
|
||||||
|
|
||||||
|
lam_mutex_t mca_io_romio_mutex;
|
38
src/mca/mpi/io/romio/src/io_romio.h
Обычный файл
38
src/mca/mpi/io/romio/src/io_romio.h
Обычный файл
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MCA_IO_ROMIO_H
|
||||||
|
#define MCA_IO_ROMIO_H
|
||||||
|
|
||||||
|
#include "mpi/request/request.h"
|
||||||
|
#include "lam/threads/mutex.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include "romio-1.2.5.1/include/mpio.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct mca_io_romio_request_t {
|
||||||
|
lam_request_t super;
|
||||||
|
mca_io_romio_MPIO_Request romio_rq;
|
||||||
|
};
|
||||||
|
typedef struct mca_io_romio_request_t mca_io_romio_request_t;
|
||||||
|
|
||||||
|
|
||||||
|
//version numbers
|
||||||
|
//actions struct
|
||||||
|
|
||||||
|
struct mca_io_file_t {
|
||||||
|
char * romio_fh;
|
||||||
|
};
|
||||||
|
typedef struct mca_io_file_t mca_io_file_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// global variables, instantiated in global.c
|
||||||
|
extern lam_mutex_t mca_io_romio_mutex;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* MCA_IO_ROMIO_H */
|
68
src/mca/mpi/io/romio/src/io_romio_module.c
Обычный файл
68
src/mca/mpi/io/romio/src/io_romio_module.c
Обычный файл
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "mpi.h"
|
||||||
|
#include "mca/mpi/io/io.h"
|
||||||
|
#include "io_romio.h"
|
||||||
|
|
||||||
|
|
||||||
|
int mca_io_romio_module_open(void);
|
||||||
|
int mca_io_romio_module_close(void);
|
||||||
|
mca_io_1_0_0_t* mca_io_romio_module_init(int* priority, int* min_thread, int* max_thread);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mca_io_base_module_1_0_0_t mca_io_romio_module = {
|
||||||
|
/* First, the mca_base_module_t struct containing meta information
|
||||||
|
about the module itself */
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Indicate that we are a io v1.0.0 module (which also implies a
|
||||||
|
specific MCA version) */
|
||||||
|
|
||||||
|
MCA_IO_BASE_VERSION_1_0_0,
|
||||||
|
|
||||||
|
"romio", /* MCA module name */
|
||||||
|
1, /* MCA module major version */
|
||||||
|
0, /* MCA module minor version */
|
||||||
|
0, /* MCA module release version */
|
||||||
|
mca_io_romio_module_open, /* module open */
|
||||||
|
mca_io_romio_module_close /* module close */
|
||||||
|
},
|
||||||
|
|
||||||
|
/* Next the MCA v1.0.0 module meta data */
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Whether the module is checkpointable or not */
|
||||||
|
|
||||||
|
false
|
||||||
|
},
|
||||||
|
|
||||||
|
mca_io_romio_module_init /* module init */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
int mca_io_romio_module_open(void)
|
||||||
|
{
|
||||||
|
return LAM_SUCCESS;
|
||||||
|
/* register all mca parameters */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int mca_io_romio_module_close(void)
|
||||||
|
{
|
||||||
|
return LAM_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mca_io_1_0_0_t* mca_io_romio_module_init(int* priority, int* min_thread, int* max_thread)
|
||||||
|
{
|
||||||
|
|
||||||
|
*priority=10;
|
||||||
|
*min_thread = MPI_THREAD_SINGLE;
|
||||||
|
*max_thread = MPI_THREAD_SERIALIZED;
|
||||||
|
return NULL; /* should return function pointer tables */
|
||||||
|
|
||||||
|
}
|
17
src/mca/mpi/io/romio/src/romio-1.2.5.1/include/mpio.h
Обычный файл
17
src/mca/mpi/io/romio/src/romio-1.2.5.1/include/mpio.h
Обычный файл
@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MCA_IO_ROMIO_DUMMY_H
|
||||||
|
#define MCA_IO_ROMIO_DUMMY_H
|
||||||
|
|
||||||
|
|
||||||
|
typedef char *mca_io_romio_MPIO_Request;
|
||||||
|
typedef char *mca_io_romio_MPI_File;
|
||||||
|
|
||||||
|
|
||||||
|
int mca_io_romio_MPI_File_iwrite(mca_io_romio_MPI_File, void *,
|
||||||
|
int, MPI_Datatype, mca_io_romio_MPIO_Request);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
Загрузка…
x
Ссылка в новой задаче
Block a user