1
1

initial work on romio MCA component

MCA setup
1 wrapper function

This commit was SVN r442.
Этот коммит содержится в:
Mark Taylor 2004-01-16 00:35:44 +00:00
родитель 8db2275df1
Коммит 4717df3979
18 изменённых файлов: 387 добавлений и 1 удалений

Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -0,0 +1,6 @@
major=1
minor=0
release=0
alpha=0
beta=0
cvs=1

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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -0,0 +1,4 @@

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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 Обычный файл
Просмотреть файл

@ -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 */
}

Просмотреть файл

@ -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