initial work on romio MCA component
MCA setup 1 wrapper function This commit was SVN r442.
Этот коммит содержится в:
родитель
8db2275df1
Коммит
4717df3979
@ -1,2 +1,5 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
.deps
|
||||
.libs
|
||||
*.la
|
||||
|
@ -1,2 +1,5 @@
|
||||
Makefile
|
||||
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
|
||||
#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 */
|
||||
|
||||
|
||||
|
||||
|
||||
|
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