diff options
Diffstat (limited to 'modules/mpi')
99 files changed, 8747 insertions, 0 deletions
diff --git a/modules/mpi/Makefile b/modules/mpi/Makefile new file mode 100755 index 000000000..db757428e --- /dev/null +++ b/modules/mpi/Makefile @@ -0,0 +1,1486 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# modules/mpi/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU +# +# This file must be used under the terms of the CeCILL. +# This source file is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at +# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr> +# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr> +# +# This file must be used under the terms of the CeCILL. +# This source file is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at +# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +# + +########## +### Makefile included stuff +### Target, variable, suffixes which are supposed to be useful in every makefile.am +########## + + + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/scilab +pkgincludedir = $(includedir)/scilab +pkglibdir = $(libdir)/scilab +pkglibexecdir = $(libexecdir)/scilab +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \ + $(top_srcdir)/config/depcomp $(libscimpi_la_include_HEADERS) \ + TODO +am__append_1 = java +subdir = modules/mpi +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \ + $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \ + $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \ + $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \ + $(top_srcdir)/m4/intel_compiler.m4 \ + $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \ + $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \ + $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \ + $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \ + $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \ + $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkglibdir)" \ + "$(DESTDIR)$(libscimpi_la_etcdir)" \ + "$(DESTDIR)$(libscimpi_la_rootdir)" \ + "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" \ + "$(DESTDIR)$(libscimpi_la_includedir)" +LTLIBRARIES = $(pkglib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libscimpi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = sci_gateway/c/libscimpi_la-sci_mpi_init.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo \ + sci_gateway/c/libscimpi_la-gw_mpi.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_recv.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_send.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_isend.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_wait.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo +am__objects_2 = src/c/libscimpi_la-serialization.lo \ + src/c/libscimpi_la-deserialization.lo +am_libscimpi_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libscimpi_la_OBJECTS = $(am_libscimpi_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +am__v_lt_1 = +libscimpi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libscimpi_la_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. -I$(top_builddir)/modules/core/includes +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libscimpi_la_SOURCES) +DIST_SOURCES = $(libscimpi_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(libscimpi_la_etc_DATA) $(libscimpi_la_root_DATA) \ + $(libscimpi_la_sci_gateway_DATA) +HEADERS = $(libscimpi_la_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing aclocal-1.14 +ALL_LINGUAS = en_US fr_FR zh_CN zh_TW ru_RU ca_ES de_DE es_ES pt_BR ja_JP it_IT uk_UA pl_PL cs_CZ +ALL_LINGUAS_DOC = en_US fr_FR pt_BR ja_JP ru_RU +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +ANT = /usr/bin/ant +ANTLR = /usr/share/java/antlr.jar +AR = ar +ARPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -larpack +ASM3 = /usr/share/java/asm3-3.3.2.jar +AUTOCONF = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoconf +AUTOHEADER = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoheader +AUTOMAKE = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing automake-1.14 +AVALON_FRAMEWORK = /home/shashank/scilab-master_5.5.2/thirdparty/avalon-framework.jar +AWK = mawk +BATIK = /home/shashank/scilab-master_5.5.2/thirdparty/batik-all-1.7.jar +BLAS_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lblas + +# Includes need for the compilation +# MPI code needs to be compile with the openmpi 'compiler' (it is a wrapper) +CC = $(OPENMPI_CC) +CCACHE = +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 +CHECKSTYLE = +COBERTURA = /usr/share/java/cobertura.jar +COMMONS_BEANUTILS = +COMMONS_IO = /home/shashank/scilab-master_5.5.2/thirdparty/commons-io.jar +COMMONS_LOGGING = /home/shashank/scilab-master_5.5.2/thirdparty/commons-logging.jar +CPP = gcc -E +CPPFLAGS = +CURL_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +CURL_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/curl-config +CURL_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lcurl -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lssl -lcrypto -lrt -lz +CURL_VERSION = libcurl 7.19.7 +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g -O2 +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEMOTOOLS_ENABLE = yes +DEPDIR = .deps +DLLTOOL = false +DOCBOOK_ROOT = /home/shashank/scilab-master_5.5.2/thirdparty/docbook/ +DOXYGEN_BIN = +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +ECJ = /home/shashank/scilab-master_5.5.2/thirdparty/ecj.jar +EGREP = /bin/grep -E +EXEEXT = +F77 = gfortran +FFLAGS = -g -O2 +FFTW3_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lfftw3 +FFTW_ENABLE = yes +FGREP = /bin/grep -F +FLEXDOCK = /home/shashank/scilab-master_5.5.2/thirdparty/flexdock-1.2.4.jar +FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. -lpthread -ldl -lcurses -lgfortran -lm -lquadmath +FOP = /home/shashank/scilab-master_5.5.2/thirdparty/fop.jar +FREEHEP_GRAPHICS2D = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphics2d.jar +FREEHEP_GRAPHICSIO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio.jar +FREEHEP_GRAPHICSIO_EMF = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio-emf.jar +FREEHEP_IO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-io.jar +FREEHEP_UTIL = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-util.jar +GENHTML = +GETTEXT_MACRO_VERSION = 0.19 +GIWS_BIN = +GLUEGEN2_RT = /home/shashank/scilab-master_5.5.2/thirdparty/gluegen2-rt.jar +GMSGFMT = /usr/bin/msgfmt +GMSGFMT_015 = /usr/bin/msgfmt +GRAPHICS_ENABLE = yes +GREP = /bin/grep +GUI_ENABLE = yes +HDF5_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +HDF5_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lhdf5 -lhdf5_hl +HELP_ENABLE = yes +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +INTLLIBS = +INTL_MACOSX_LIBS = +JAR = /usr/lib/jvm/java-8-openjdk-amd64/bin/jar +JAVA = /usr/lib/jvm/java-8-openjdk-amd64/bin/java +JAVAC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javac +JAVAC_DEBUG = off +JAVADOC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc +JAVAH = /usr/lib/jvm/java-8-openjdk-amd64/bin/javah +JAVASCI_ENABLE = yes +JAVA_ENABLE = yes +JAVA_G = /usr/lib/jvm/java-8-openjdk-amd64/bin/java +JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64 +JAVA_JNI_INCLUDE = -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux +JAVA_JNI_LIBS = -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64 -ljava -lverify -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server -ljvm +JDB = /usr/lib/jvm/java-8-openjdk-amd64/bin/jdb +JEUCLID_CORE = /home/shashank/scilab-master_5.5.2/thirdparty/jeuclid-core.jar +JGRAPHX = /home/shashank/scilab-master_5.5.2/thirdparty/jgraphx.jar +JHALL = /home/shashank/scilab-master_5.5.2/thirdparty/jhall.jar +JLATEXMATH = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-1.0.3.jar +JLATEXMATH_FOP = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-fop-1.0.3.jar +JOGL2 = /home/shashank/scilab-master_5.5.2/thirdparty/jogl2.jar +JROSETTA_API = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-API.jar +JROSETTA_ENGINE = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-engine.jar +JUNIT4 = /usr/share/java/junit4.jar +LAPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -llapack +LCOV = +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = -Wl,--no-as-needed +LIBICONV = -liconv +LIBINTL = +LIBM = -lm +LIBOBJS = +LIBS = -lpthread -ldl -lcurses -lm +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LOGGING_LEVEL = SEVERE +LOOKS = /home/shashank/scilab-master_5.5.2/thirdparty/looks-2.1.1.jar +LTLIBICONV = -liconv +LTLIBINTL = +LTLIBOBJS = +MAINT = # +MAKEINFO = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing makeinfo +MANIFEST_TOOL = : +MATIO_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +MATIO_ENABLE = yes +MATIO_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lm -lz -lmatio -lhdf5 +MKDIR_P = /bin/mkdir -p +MPI_ENABLE = no +MSGCAT = /usr/bin/msgcat +MSGFMT = /usr/bin/msgfmt +MSGFMT_015 = /usr/bin/msgfmt +MSGMERGE = /usr/bin/msgmerge +NM = nm +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OCAMLC = ocamlc +OCAMLDEP = ocamldep +OCAMLLEX = ocamllex +OCAMLOPT = ocamlopt +OCAMLYACC = ocamlyacc +OPENMPI_CC = +OPENMPI_CFLAGS = +OPENMPI_CXX = +OPENMPI_CXXFLAGS = +OPENMPI_LIBS = +OPENMP_CFLAGS = -fopenmp +OPENMP_CXXFLAGS = -fopenmp +OPENMP_ENABLE = yes +OPENMP_LIBS = -lgomp -lstdc++ +OTOOL = +OTOOL64 = +PACKAGE = scilab +PACKAGE_BUGREPORT = http://bugzilla.scilab.org/ +PACKAGE_NAME = Scilab +PACKAGE_STRING = Scilab 5 +PACKAGE_TARNAME = scilab +PACKAGE_URL = +PACKAGE_VERSION = 5 +PATH_SEPARATOR = : +PCRE_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +PCRE_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/pcre-config +PCRE_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lpcreposix -lpcre +PCRE_VERSION = 8.35 +PKG_CONFIG = /usr/bin/pkg-config +POSUB = po +POW_LIB = +PYTHON = +RANLIB = ranlib +RELOCATABLE = no +RT_LIB = -lrt +SAXON = /home/shashank/scilab-master_5.5.2/thirdparty/saxon9he.jar +SCILAB_BINARY_VERSION = 5.5.2 +SCILAB_LIBRARY_VERSION = 5:5:2 +SCILAB_VERSION_MAINTENANCE = 2 +SCILAB_VERSION_MAJOR = 5 +SCILAB_VERSION_MINOR = 5 +SCIRENDERER = ${modules.dir}/scirenderer/${build.jar.dir}/scirenderer.jar +SCIRENDERER_CP = $SCILAB/modules/scirenderer/jar/scirenderer.jar +SCI_CFLAGS = -D_LARGEFILE64_SOURCE -DNDEBUG -m64 -fno-stack-protector +SCI_CXXFLAGS = -DNDEBUG -fno-stack-protector +SCI_FFLAGS = -DNDEBUG -m64 -fPIC +SCI_LDFLAGS = +SED = /bin/sed +SET_MAKE = +SET_RELOCATABLE = +SHELL = /bin/bash +SKINLF = /home/shashank/scilab-master_5.5.2/thirdparty/skinlf.jar +SPLINT = no +STRIP = strip +SWIG_BIN = +SWIG_JAVA = +SWIG_RUNTIME_LIBS_DIR = +SWIG_SCILAB = +TCLTK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -ltk8.5 -L/home/shashank/scilab-master_5.5.2/usr/lib -ltcl8.5 -ldl +TCL_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include +TK_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include +UMFPACK_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +UMFPACK_ENABLE = yes +UMFPACK_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lumfpack -lamd +USE_NLS = yes +VERSION = 5 +WITH_OCAML = +WITH_TKSCI = yes +XCOS_ENABLE = yes +XGETTEXT = /usr/bin/xgettext +XGETTEXT_015 = /usr/bin/xgettext +XGETTEXT_EXTRA_OPTIONS = +XMKMF = +XMLGRAPHICS_COMMONS = /home/shashank/scilab-master_5.5.2/thirdparty/xmlgraphics-commons-1.4.jar +XML_APIS_EXT = /home/shashank/scilab-master_5.5.2/thirdparty/xml-apis-ext.jar +XML_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/xml2-config +XML_FLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include/libxml2 +XML_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lxml2 -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lz -lm -ldl +XML_VERSION = 2.9.1 +X_CFLAGS = +X_EXTRA_LIBS = +X_LIBS = +X_PRE_LIBS = +abs_builddir = /home/shashank/scilab-master_5.5.2/modules/mpi +abs_srcdir = /home/shashank/scilab-master_5.5.2/modules/mpi +abs_top_builddir = /home/shashank/scilab-master_5.5.2 +abs_top_srcdir = /home/shashank/scilab-master_5.5.2 +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_DUMPBIN = +ac_ct_F77 = gfortran +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +cxx_present = yes +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/shashank/scilab-master_5.5.2/config/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = ../../ +top_builddir = ../.. +top_srcdir = ../.. +MPI_C_SOURCES = src/c/serialization.c \ + src/c/deserialization.c + + +# List of the gateway c files +GATEWAY_C_SOURCES = \ + sci_gateway/c/sci_mpi_init.c \ + sci_gateway/c/sci_mpi_finalize.c \ + sci_gateway/c/sci_mpi_comm_size.c \ + sci_gateway/c/sci_mpi_comm_rank.c \ + sci_gateway/c/gw_mpi.c \ + sci_gateway/c/sci_mpi_recv.c \ + sci_gateway/c/sci_mpi_send.c \ + sci_gateway/c/sci_mpi_irecv.c \ + sci_gateway/c/sci_mpi_isend.c \ + sci_gateway/c/sci_mpi_bcast.c \ + sci_gateway/c/sci_mpi_wait.c \ + sci_gateway/c/sci_mpi_get_processor_name.c + +libscimpi_la_CFLAGS = -Iincludes/ \ + -Isrc/c/ \ + -I$(top_srcdir)/libs/MALLOC/includes/ \ + -I$(top_srcdir)/modules/output_stream/includes \ + -I$(top_srcdir)/modules/localization/includes \ + -I$(top_srcdir)/modules/api_scilab/includes \ + -DDEBUG + +# libscimpi_la_LDFLAGS = $(LAMPI_LDFLAGS) +libscimpi_la_LIBADD = $(OPENMPI_LIBS) + +# Name of the future library (.la will be replace by .so, .a, etc regarding +# the system) +pkglib_LTLIBRARIES = libscimpi.la + +# All the sources needed by libscimpi.la +libscimpi_la_SOURCES = $(GATEWAY_C_SOURCES) $(MPI_C_SOURCES) +#$(GATEWAY_FORTRAN_SOURCES) $(MPI_FORTRAN_SOURCES) + +#### Target ###### +modulename = mpi + +#### mpi : Conf files #### +libscimpi_la_rootdir = $(mydatadir) +libscimpi_la_root_DATA = readme.txt + +#### mpi : init scripts #### +libscimpi_la_etcdir = $(mydatadir)/etc +libscimpi_la_etc_DATA = etc/mpi.quit etc/mpi.start + +#### mpi : gateway declaration #### +libscimpi_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscimpi_la_sci_gateway_DATA = sci_gateway/mpi_gateway.xml + +#### mpi : include files #### +libscimpi_la_includedir = $(pkgincludedir)/mpi +libscimpi_la_include_HEADERS = includes/gw_mpi.h + +# Where all the Scilab stuff is installed (macros, help, ...) +mydatadir = $(pkgdatadir)/modules/$(modulename) + +# Set AM_* SCI detected settings +AM_CPPFLAGS = $(SCI_CPPFLAGS) +AM_CFLAGS = $(SCI_CFLAGS) +AM_CXXFLAGS = $(SCI_CXXFLAGS) +# append includes to AM_FFLAGS to manage fortran includes +AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/ + +# Tag shared libraries with the Scilab version +AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION) + +# splint options +SPLINT_OPTIONS = -weak -booltype BOOL + +########################### JAVA ###################################### +#### We are delegating java compilation to ant... Thanks to that +#### the procedure will be the same with Microsoft Windows (C) +#### and Linux/Unix +####################################################################### +TARGETS_ALL = $(am__append_1) + +################ MACROS ###################### +# Rule to build a macro +# NOT USED AT THE MOMENT +SUFFIXES = .sci + +########### INSTALL DOCUMENTATION ################### + +# Install documentation files into the right target +# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because +# automake needs the html files to be present which is not the case when +# we are building Scilab + +# Where it should be installed +pkgdocdir = $(mydatadir) + +# What is the mask of the help source +DOCMASKXML = *.xml + +# What is the mask of the MathML sources +DOCMASKMML = *.mml + +########### INSTALL DATA ################### +# Install macros, help & demos +# Where it should be installed +pkgmacrosdir = $(mydatadir) +# Which directory we process +MACRODIRS = macros/ +# Mask of the Scilab sources macros +MACROMASK = *.sci +# Mask of the Scilab executable sources macros +MACROBUILDMASK = *.sce +# Mask of the Scilab compiled macros +MACROBINMASK = *.bin +# List of the standard directory for tests +TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java +# Where the demos should be installed +pkgdemosdir = $(mydatadir) +# List of the standard directory for demos +DEMOS_DIR = demos +# List of the standard directory for examples +EXAMPLES_DIR = examples +# Where to export JAVA archives (.jar) +JARDIR = jar/ +# JAR files mask +JARMASK = *.jar +# Chapter file +HELP_CHAPTERDIR = help/ +HELP_CHAPTERFILE = addchapter.sce +HELP_CHAPTERLANG = en_US fr_FR pt_BR +all: all-am + +.SUFFIXES: +.SUFFIXES: .sci .bin .c .lo .o .obj +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/mpi/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/mpi/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/Makefile.incl.am: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: # $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): # $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ + } + +uninstall-pkglibLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ + done + +clean-pkglibLTLIBRARIES: + -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) + @list='$(pkglib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +sci_gateway/c/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c + @: > sci_gateway/c/$(am__dirstamp) +sci_gateway/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c/$(DEPDIR) + @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_init.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-gw_mpi.lo: sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_recv.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_send.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_isend.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_wait.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +src/c/$(am__dirstamp): + @$(MKDIR_P) src/c + @: > src/c/$(am__dirstamp) +src/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/c/$(DEPDIR) + @: > src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscimpi_la-serialization.lo: src/c/$(am__dirstamp) \ + src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscimpi_la-deserialization.lo: src/c/$(am__dirstamp) \ + src/c/$(DEPDIR)/$(am__dirstamp) + +libscimpi.la: $(libscimpi_la_OBJECTS) $(libscimpi_la_DEPENDENCIES) $(EXTRA_libscimpi_la_DEPENDENCIES) + $(AM_V_CCLD)$(libscimpi_la_LINK) -rpath $(pkglibdir) $(libscimpi_la_OBJECTS) $(libscimpi_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f sci_gateway/c/*.$(OBJEXT) + -rm -f sci_gateway/c/*.lo + -rm -f src/c/*.$(OBJEXT) + -rm -f src/c/*.lo + +distclean-compile: + -rm -f *.tab.c + +include sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Plo +include sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Plo +include src/c/$(DEPDIR)/libscimpi_la-deserialization.Plo +include src/c/$(DEPDIR)/libscimpi_la-serialization.Plo + +.c.o: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ + $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Plo +# $(AM_V_CC)source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< + +sci_gateway/c/libscimpi_la-sci_mpi_init.lo: sci_gateway/c/sci_mpi_init.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_init.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_init.lo `test -f 'sci_gateway/c/sci_mpi_init.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_init.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_init.c' object='sci_gateway/c/libscimpi_la-sci_mpi_init.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_init.lo `test -f 'sci_gateway/c/sci_mpi_init.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_init.c + +sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo: sci_gateway/c/sci_mpi_finalize.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo `test -f 'sci_gateway/c/sci_mpi_finalize.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_finalize.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_finalize.c' object='sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo `test -f 'sci_gateway/c/sci_mpi_finalize.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_finalize.c + +sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo: sci_gateway/c/sci_mpi_comm_size.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo `test -f 'sci_gateway/c/sci_mpi_comm_size.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_size.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_comm_size.c' object='sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo `test -f 'sci_gateway/c/sci_mpi_comm_size.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_size.c + +sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo: sci_gateway/c/sci_mpi_comm_rank.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo `test -f 'sci_gateway/c/sci_mpi_comm_rank.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_rank.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_comm_rank.c' object='sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo `test -f 'sci_gateway/c/sci_mpi_comm_rank.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_rank.c + +sci_gateway/c/libscimpi_la-gw_mpi.lo: sci_gateway/c/gw_mpi.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-gw_mpi.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Tpo -c -o sci_gateway/c/libscimpi_la-gw_mpi.lo `test -f 'sci_gateway/c/gw_mpi.c' || echo '$(srcdir)/'`sci_gateway/c/gw_mpi.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Plo +# $(AM_V_CC)source='sci_gateway/c/gw_mpi.c' object='sci_gateway/c/libscimpi_la-gw_mpi.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-gw_mpi.lo `test -f 'sci_gateway/c/gw_mpi.c' || echo '$(srcdir)/'`sci_gateway/c/gw_mpi.c + +sci_gateway/c/libscimpi_la-sci_mpi_recv.lo: sci_gateway/c/sci_mpi_recv.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_recv.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_recv.lo `test -f 'sci_gateway/c/sci_mpi_recv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_recv.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_recv.c' object='sci_gateway/c/libscimpi_la-sci_mpi_recv.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_recv.lo `test -f 'sci_gateway/c/sci_mpi_recv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_recv.c + +sci_gateway/c/libscimpi_la-sci_mpi_send.lo: sci_gateway/c/sci_mpi_send.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_send.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_send.lo `test -f 'sci_gateway/c/sci_mpi_send.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_send.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_send.c' object='sci_gateway/c/libscimpi_la-sci_mpi_send.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_send.lo `test -f 'sci_gateway/c/sci_mpi_send.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_send.c + +sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo: sci_gateway/c/sci_mpi_irecv.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo `test -f 'sci_gateway/c/sci_mpi_irecv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_irecv.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_irecv.c' object='sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo `test -f 'sci_gateway/c/sci_mpi_irecv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_irecv.c + +sci_gateway/c/libscimpi_la-sci_mpi_isend.lo: sci_gateway/c/sci_mpi_isend.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_isend.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_isend.lo `test -f 'sci_gateway/c/sci_mpi_isend.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_isend.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_isend.c' object='sci_gateway/c/libscimpi_la-sci_mpi_isend.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_isend.lo `test -f 'sci_gateway/c/sci_mpi_isend.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_isend.c + +sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo: sci_gateway/c/sci_mpi_bcast.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo `test -f 'sci_gateway/c/sci_mpi_bcast.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_bcast.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_bcast.c' object='sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo `test -f 'sci_gateway/c/sci_mpi_bcast.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_bcast.c + +sci_gateway/c/libscimpi_la-sci_mpi_wait.lo: sci_gateway/c/sci_mpi_wait.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_wait.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_wait.lo `test -f 'sci_gateway/c/sci_mpi_wait.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_wait.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_wait.c' object='sci_gateway/c/libscimpi_la-sci_mpi_wait.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_wait.lo `test -f 'sci_gateway/c/sci_mpi_wait.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_wait.c + +sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo: sci_gateway/c/sci_mpi_get_processor_name.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo `test -f 'sci_gateway/c/sci_mpi_get_processor_name.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_get_processor_name.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_mpi_get_processor_name.c' object='sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo `test -f 'sci_gateway/c/sci_mpi_get_processor_name.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_get_processor_name.c + +src/c/libscimpi_la-serialization.lo: src/c/serialization.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT src/c/libscimpi_la-serialization.lo -MD -MP -MF src/c/$(DEPDIR)/libscimpi_la-serialization.Tpo -c -o src/c/libscimpi_la-serialization.lo `test -f 'src/c/serialization.c' || echo '$(srcdir)/'`src/c/serialization.c + $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscimpi_la-serialization.Tpo src/c/$(DEPDIR)/libscimpi_la-serialization.Plo +# $(AM_V_CC)source='src/c/serialization.c' object='src/c/libscimpi_la-serialization.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o src/c/libscimpi_la-serialization.lo `test -f 'src/c/serialization.c' || echo '$(srcdir)/'`src/c/serialization.c + +src/c/libscimpi_la-deserialization.lo: src/c/deserialization.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT src/c/libscimpi_la-deserialization.lo -MD -MP -MF src/c/$(DEPDIR)/libscimpi_la-deserialization.Tpo -c -o src/c/libscimpi_la-deserialization.lo `test -f 'src/c/deserialization.c' || echo '$(srcdir)/'`src/c/deserialization.c + $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscimpi_la-deserialization.Tpo src/c/$(DEPDIR)/libscimpi_la-deserialization.Plo +# $(AM_V_CC)source='src/c/deserialization.c' object='src/c/libscimpi_la-deserialization.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o src/c/libscimpi_la-deserialization.lo `test -f 'src/c/deserialization.c' || echo '$(srcdir)/'`src/c/deserialization.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs + -rm -rf src/c/.libs src/c/_libs +install-libscimpi_la_etcDATA: $(libscimpi_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_etc_DATA)'; test -n "$(libscimpi_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_etcdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscimpi_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscimpi_la_etcdir)" || exit $$?; \ + done + +uninstall-libscimpi_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_etc_DATA)'; test -n "$(libscimpi_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscimpi_la_rootDATA: $(libscimpi_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_root_DATA)'; test -n "$(libscimpi_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_rootdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscimpi_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscimpi_la_rootdir)" || exit $$?; \ + done + +uninstall-libscimpi_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_root_DATA)'; test -n "$(libscimpi_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_rootdir)'; $(am__uninstall_files_from_dir) +install-libscimpi_la_sci_gatewayDATA: $(libscimpi_la_sci_gateway_DATA) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_sci_gateway_DATA)'; test -n "$(libscimpi_la_sci_gatewaydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_sci_gatewaydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscimpi_la_sci_gatewaydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" || exit $$?; \ + done + +uninstall-libscimpi_la_sci_gatewayDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_sci_gateway_DATA)'; test -n "$(libscimpi_la_sci_gatewaydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir) +install-libscimpi_la_includeHEADERS: $(libscimpi_la_include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_include_HEADERS)'; test -n "$(libscimpi_la_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libscimpi_la_includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libscimpi_la_includedir)" || exit $$?; \ + done + +uninstall-libscimpi_la_includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_include_HEADERS)'; test -n "$(libscimpi_la_includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) all-local +installdirs: + for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscimpi_la_etcdir)" "$(DESTDIR)$(libscimpi_la_rootdir)" "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" "$(DESTDIR)$(libscimpi_la_includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + -rm -f sci_gateway/c/$(am__dirstamp) + -rm -f src/c/$(DEPDIR)/$(am__dirstamp) + -rm -f src/c/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local \ + clean-pkglibLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local install-libscimpi_la_etcDATA \ + install-libscimpi_la_includeHEADERS \ + install-libscimpi_la_rootDATA \ + install-libscimpi_la_sci_gatewayDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-pkglibLTLIBRARIES + +install-html: install-html-am + +install-html-am: install-html-local + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libscimpi_la_etcDATA \ + uninstall-libscimpi_la_includeHEADERS \ + uninstall-libscimpi_la_rootDATA \ + uninstall-libscimpi_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \ + check-local clean clean-generic clean-libtool clean-local \ + clean-pkglibLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-local distclean-tags distdir dvi dvi-am html html-am \ + info info-am install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ + install-html-local install-info install-info-am \ + install-libscimpi_la_etcDATA \ + install-libscimpi_la_includeHEADERS \ + install-libscimpi_la_rootDATA \ + install-libscimpi_la_sci_gatewayDATA install-man install-pdf \ + install-pdf-am install-pkglibLTLIBRARIES install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-libscimpi_la_etcDATA \ + uninstall-libscimpi_la_includeHEADERS \ + uninstall-libscimpi_la_rootDATA \ + uninstall-libscimpi_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + + +# This target enables tests for Scilab +check-local: $(top_builddir)/scilab-bin test + if test -d $(mydatadir)/tests; then \ + @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \ + fi +check-code: + if test -f build.xml; then \ + $(ANT) checkstyle; \ + fi + if test -x "$(SPLINT)"; then \ + $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \ + fi +java: +# Some configurations needs to export JAVA_HOME in the current env + @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ + if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT); \ + fi + +clean-java: +# Some configurations needs to export JAVA_HOME in the current env + @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ + if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT) clean; \ + fi; + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +#swig: $(SWIG_WRAPPERS) +# @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \ +# SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \ +# if test -n "$(SWIG_WRAPPERS)"; then \ +# for file in $(SWIG_WRAPPERS) ; do \ +# echo "Swig process of $$file (Java) ..."; \ +# $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \ +# done; \ +# fi + +#swig-scilab: $(SWIG_SCILAB_WRAPPERS) +# @SWIG_OUTDIR=src/swig/; \ +# if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \ +# for file in $(SWIG_SCILAB_WRAPPERS) ; do \ +# echo "Swig process of $$file (Scilab) ..."; \ +# $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \ +# done; \ +# fi + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +#giws: $(GIWS_WRAPPERS) +# @GIWS_OUTPUTDIR=src/jni/; \ +# MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \ +# if test -n "$(GIWS_WRAPPERS)"; then \ +# for file in $(GIWS_WRAPPERS) ; do \ +# echo "GIWS process of $$file ..."; \ +# if test -z "$(GIWS_OPTIONS)"; then \ +# $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +# else \ +# echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \ +# $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +# fi \ +# done; \ +# fi + +#giws-exception: +# @GIWS_OUTPUTDIR=src/jni/;\ +# echo "GIWS: Generation of exception class ..."; \ +# $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR + +macros: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been built"; \ + else \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\ + fi) + +# Removes the macros +clean-macros: +# Removes macros (*.bin generated from .sci) + @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \ + rm -f $(builddir)/$$dir/$(MACROBINMASK); \ + done + +test: +# More tests could be added here + @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT) test; \ + fi + +all-local: $(TARGETS_ALL) + +.sci.bin: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been build"; \ + else \ + echo "Creating $@"; \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \ + fi ) + +install-html-local: + +install-data-local-local: +# Mainly for javasci + @if test -d $(srcdir)/javadoc; then \ + cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \ + fi +# If the user wants the help sources to be installed + @echo "-------- Install of XML sources of help files --------"; \ + for lang in $(ALL_LINGUAS); do \ + if test -d $(srcdir)/help/$$lang; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \ + if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \ + for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \ + done ; \ + fi; \ + fi; \ + done; \ + @echo "-------- Install of MathML sources --------"; \ + if test -d $(srcdir)/help/mml/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \ + if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \ + for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \ + done ; \ + fi; \ + fi +install-data-local: +# Install the tests + @echo "-------- Install tests (if any) --------"; \ + for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the help chapter + @echo "-------- Install the help chapter (if any) --------"; \ + for lang in $(HELP_CHAPTERLANG); do \ + HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \ + if test -f $$HELPFILE; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + fi; \ + done +# Install the demos & examples + @echo "-------- Install demos & examples (if any) --------"; \ + for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the macros + @echo "-------- Install macros (if any) --------"; \ + for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + if test -d $(srcdir)/$$dir/; then \ + FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\ + if test -n "$(MACROSSPECIALEXT)"; then \ + specialExtDir=""; \ + for specialExt in $(MACROSSPECIALEXT); do \ + specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \ + done; \ + FILELIST="$$FILELIST $$specialExtDir"; \ + fi; \ + for file in `ls -1 $$FILELIST 2>/dev/null`; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \ + done; \ + fi; \ + done +# Install java files (.jar) + @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \ + echo "-------- Install jar files --------"; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \ + for file in $(srcdir)/$(JARDIR)$(JARMASK); do\ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \ + done ; \ + fi + +########### CLEAN ################### +# Clean help (generated automatically by Scilab) +# It used to clean the macro (clean-macros) but this was causing +# make clean && make to fail Scilab startup +clean-local: clean-java +#clean-local: + +distclean-local: + rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_* + +.PHONY: macros java swig giws + +# Provides macros compilation, Java compilation, cleaning + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/modules/mpi/Makefile.am b/modules/mpi/Makefile.am new file mode 100755 index 000000000..3e37788ad --- /dev/null +++ b/modules/mpi/Makefile.am @@ -0,0 +1,70 @@ +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU +# +# This file must be used under the terms of the CeCILL. +# This source file is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at +# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +MPI_C_SOURCES = src/c/serialization.c \ + src/c/deserialization.c + +# List of the gateway c files +GATEWAY_C_SOURCES = \ + sci_gateway/c/sci_mpi_init.c \ + sci_gateway/c/sci_mpi_finalize.c \ + sci_gateway/c/sci_mpi_comm_size.c \ + sci_gateway/c/sci_mpi_comm_rank.c \ + sci_gateway/c/gw_mpi.c \ + sci_gateway/c/sci_mpi_recv.c \ + sci_gateway/c/sci_mpi_send.c \ + sci_gateway/c/sci_mpi_irecv.c \ + sci_gateway/c/sci_mpi_isend.c \ + sci_gateway/c/sci_mpi_bcast.c \ + sci_gateway/c/sci_mpi_wait.c \ + sci_gateway/c/sci_mpi_get_processor_name.c + +# Includes need for the compilation +# MPI code needs to be compile with the openmpi 'compiler' (it is a wrapper) +CC = $(OPENMPI_CC) +libscimpi_la_CFLAGS= -Iincludes/ \ + -Isrc/c/ \ + -I$(top_srcdir)/libs/MALLOC/includes/ \ + -I$(top_srcdir)/modules/output_stream/includes \ + -I$(top_srcdir)/modules/localization/includes \ + -I$(top_srcdir)/modules/api_scilab/includes \ + -DDEBUG +# libscimpi_la_LDFLAGS = $(LAMPI_LDFLAGS) +libscimpi_la_LIBADD = $(OPENMPI_LIBS) + +# Name of the future library (.la will be replace by .so, .a, etc regarding +# the system) +pkglib_LTLIBRARIES = libscimpi.la + +# All the sources needed by libscimpi.la +libscimpi_la_SOURCES = $(GATEWAY_C_SOURCES) $(MPI_C_SOURCES) +#$(GATEWAY_FORTRAN_SOURCES) $(MPI_FORTRAN_SOURCES) + + +#### Target ###### +modulename=mpi + +#### mpi : Conf files #### +libscimpi_la_rootdir = $(mydatadir) +libscimpi_la_root_DATA = readme.txt + +#### mpi : init scripts #### +libscimpi_la_etcdir = $(mydatadir)/etc +libscimpi_la_etc_DATA = etc/mpi.quit etc/mpi.start + +#### mpi : gateway declaration #### +libscimpi_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscimpi_la_sci_gateway_DATA = sci_gateway/mpi_gateway.xml + +#### mpi : include files #### +libscimpi_la_includedir=$(pkgincludedir)/mpi +libscimpi_la_include_HEADERS = includes/gw_mpi.h + +# Provides macros compilation, Java compilation, cleaning +include $(top_srcdir)/Makefile.incl.am diff --git a/modules/mpi/Makefile.in b/modules/mpi/Makefile.in new file mode 100755 index 000000000..54ed0b816 --- /dev/null +++ b/modules/mpi/Makefile.in @@ -0,0 +1,1486 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU +# +# This file must be used under the terms of the CeCILL. +# This source file is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at +# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr> +# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr> +# +# This file must be used under the terms of the CeCILL. +# This source file is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at +# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +# + +########## +### Makefile included stuff +### Target, variable, suffixes which are supposed to be useful in every makefile.am +########## + + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \ + $(top_srcdir)/config/depcomp $(libscimpi_la_include_HEADERS) \ + TODO +@NEED_JAVA_TRUE@am__append_1 = java +subdir = modules/mpi +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \ + $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \ + $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \ + $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \ + $(top_srcdir)/m4/intel_compiler.m4 \ + $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \ + $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \ + $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \ + $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \ + $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \ + $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkglibdir)" \ + "$(DESTDIR)$(libscimpi_la_etcdir)" \ + "$(DESTDIR)$(libscimpi_la_rootdir)" \ + "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" \ + "$(DESTDIR)$(libscimpi_la_includedir)" +LTLIBRARIES = $(pkglib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libscimpi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = sci_gateway/c/libscimpi_la-sci_mpi_init.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo \ + sci_gateway/c/libscimpi_la-gw_mpi.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_recv.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_send.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_isend.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_wait.lo \ + sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo +am__objects_2 = src/c/libscimpi_la-serialization.lo \ + src/c/libscimpi_la-deserialization.lo +am_libscimpi_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libscimpi_la_OBJECTS = $(am_libscimpi_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libscimpi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libscimpi_la_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libscimpi_la_SOURCES) +DIST_SOURCES = $(libscimpi_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(libscimpi_la_etc_DATA) $(libscimpi_la_root_DATA) \ + $(libscimpi_la_sci_gateway_DATA) +HEADERS = $(libscimpi_la_include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +ALL_LINGUAS_DOC = @ALL_LINGUAS_DOC@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +ANT = @ANT@ +ANTLR = @ANTLR@ +AR = @AR@ +ARPACK_LIBS = @ARPACK_LIBS@ +ASM3 = @ASM3@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVALON_FRAMEWORK = @AVALON_FRAMEWORK@ +AWK = @AWK@ +BATIK = @BATIK@ +BLAS_LIBS = @BLAS_LIBS@ + +# Includes need for the compilation +# MPI code needs to be compile with the openmpi 'compiler' (it is a wrapper) +CC = $(OPENMPI_CC) +CCACHE = @CCACHE@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHECKSTYLE = @CHECKSTYLE@ +COBERTURA = @COBERTURA@ +COMMONS_BEANUTILS = @COMMONS_BEANUTILS@ +COMMONS_IO = @COMMONS_IO@ +COMMONS_LOGGING = @COMMONS_LOGGING@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_CONFIG = @CURL_CONFIG@ +CURL_LIBS = @CURL_LIBS@ +CURL_VERSION = @CURL_VERSION@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEMOTOOLS_ENABLE = @DEMOTOOLS_ENABLE@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DOCBOOK_ROOT = @DOCBOOK_ROOT@ +DOXYGEN_BIN = @DOXYGEN_BIN@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +ECJ = @ECJ@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW3_LIB = @FFTW3_LIB@ +FFTW_ENABLE = @FFTW_ENABLE@ +FGREP = @FGREP@ +FLEXDOCK = @FLEXDOCK@ +FLIBS = @FLIBS@ +FOP = @FOP@ +FREEHEP_GRAPHICS2D = @FREEHEP_GRAPHICS2D@ +FREEHEP_GRAPHICSIO = @FREEHEP_GRAPHICSIO@ +FREEHEP_GRAPHICSIO_EMF = @FREEHEP_GRAPHICSIO_EMF@ +FREEHEP_IO = @FREEHEP_IO@ +FREEHEP_UTIL = @FREEHEP_UTIL@ +GENHTML = @GENHTML@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GIWS_BIN = @GIWS_BIN@ +GLUEGEN2_RT = @GLUEGEN2_RT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GRAPHICS_ENABLE = @GRAPHICS_ENABLE@ +GREP = @GREP@ +GUI_ENABLE = @GUI_ENABLE@ +HDF5_CFLAGS = @HDF5_CFLAGS@ +HDF5_LIBS = @HDF5_LIBS@ +HELP_ENABLE = @HELP_ENABLE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JAR = @JAR@ +JAVA = @JAVA@ +JAVAC = @JAVAC@ +JAVAC_DEBUG = @JAVAC_DEBUG@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +JAVASCI_ENABLE = @JAVASCI_ENABLE@ +JAVA_ENABLE = @JAVA_ENABLE@ +JAVA_G = @JAVA_G@ +JAVA_HOME = @JAVA_HOME@ +JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@ +JAVA_JNI_LIBS = @JAVA_JNI_LIBS@ +JDB = @JDB@ +JEUCLID_CORE = @JEUCLID_CORE@ +JGRAPHX = @JGRAPHX@ +JHALL = @JHALL@ +JLATEXMATH = @JLATEXMATH@ +JLATEXMATH_FOP = @JLATEXMATH_FOP@ +JOGL2 = @JOGL2@ +JROSETTA_API = @JROSETTA_API@ +JROSETTA_ENGINE = @JROSETTA_ENGINE@ +JUNIT4 = @JUNIT4@ +LAPACK_LIBS = @LAPACK_LIBS@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOGGING_LEVEL = @LOGGING_LEVEL@ +LOOKS = @LOOKS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MATIO_CFLAGS = @MATIO_CFLAGS@ +MATIO_ENABLE = @MATIO_ENABLE@ +MATIO_LIBS = @MATIO_LIBS@ +MKDIR_P = @MKDIR_P@ +MPI_ENABLE = @MPI_ENABLE@ +MSGCAT = @MSGCAT@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OCAMLC = @OCAMLC@ +OCAMLDEP = @OCAMLDEP@ +OCAMLLEX = @OCAMLLEX@ +OCAMLOPT = @OCAMLOPT@ +OCAMLYACC = @OCAMLYACC@ +OPENMPI_CC = @OPENMPI_CC@ +OPENMPI_CFLAGS = @OPENMPI_CFLAGS@ +OPENMPI_CXX = @OPENMPI_CXX@ +OPENMPI_CXXFLAGS = @OPENMPI_CXXFLAGS@ +OPENMPI_LIBS = @OPENMPI_LIBS@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@ +OPENMP_ENABLE = @OPENMP_ENABLE@ +OPENMP_LIBS = @OPENMP_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCRE_CFLAGS = @PCRE_CFLAGS@ +PCRE_CONFIG = @PCRE_CONFIG@ +PCRE_LIBS = @PCRE_LIBS@ +PCRE_VERSION = @PCRE_VERSION@ +PKG_CONFIG = @PKG_CONFIG@ +POSUB = @POSUB@ +POW_LIB = @POW_LIB@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELOCATABLE = @RELOCATABLE@ +RT_LIB = @RT_LIB@ +SAXON = @SAXON@ +SCILAB_BINARY_VERSION = @SCILAB_BINARY_VERSION@ +SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@ +SCILAB_VERSION_MAINTENANCE = @SCILAB_VERSION_MAINTENANCE@ +SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@ +SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@ +SCIRENDERER = @SCIRENDERER@ +SCIRENDERER_CP = @SCIRENDERER_CP@ +SCI_CFLAGS = @SCI_CFLAGS@ +SCI_CXXFLAGS = @SCI_CXXFLAGS@ +SCI_FFLAGS = @SCI_FFLAGS@ +SCI_LDFLAGS = @SCI_LDFLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SET_RELOCATABLE = @SET_RELOCATABLE@ +SHELL = @SHELL@ +SKINLF = @SKINLF@ +SPLINT = @SPLINT@ +STRIP = @STRIP@ +SWIG_BIN = @SWIG_BIN@ +SWIG_JAVA = @SWIG_JAVA@ +SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@ +SWIG_SCILAB = @SWIG_SCILAB@ +TCLTK_LIBS = @TCLTK_LIBS@ +TCL_INC_PATH = @TCL_INC_PATH@ +TK_INC_PATH = @TK_INC_PATH@ +UMFPACK_CFLAGS = @UMFPACK_CFLAGS@ +UMFPACK_ENABLE = @UMFPACK_ENABLE@ +UMFPACK_LIB = @UMFPACK_LIB@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WITH_OCAML = @WITH_OCAML@ +WITH_TKSCI = @WITH_TKSCI@ +XCOS_ENABLE = @XCOS_ENABLE@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XMLGRAPHICS_COMMONS = @XMLGRAPHICS_COMMONS@ +XML_APIS_EXT = @XML_APIS_EXT@ +XML_CONFIG = @XML_CONFIG@ +XML_FLAGS = @XML_FLAGS@ +XML_LIBS = @XML_LIBS@ +XML_VERSION = @XML_VERSION@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +cxx_present = @cxx_present@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MPI_C_SOURCES = src/c/serialization.c \ + src/c/deserialization.c + + +# List of the gateway c files +GATEWAY_C_SOURCES = \ + sci_gateway/c/sci_mpi_init.c \ + sci_gateway/c/sci_mpi_finalize.c \ + sci_gateway/c/sci_mpi_comm_size.c \ + sci_gateway/c/sci_mpi_comm_rank.c \ + sci_gateway/c/gw_mpi.c \ + sci_gateway/c/sci_mpi_recv.c \ + sci_gateway/c/sci_mpi_send.c \ + sci_gateway/c/sci_mpi_irecv.c \ + sci_gateway/c/sci_mpi_isend.c \ + sci_gateway/c/sci_mpi_bcast.c \ + sci_gateway/c/sci_mpi_wait.c \ + sci_gateway/c/sci_mpi_get_processor_name.c + +libscimpi_la_CFLAGS = -Iincludes/ \ + -Isrc/c/ \ + -I$(top_srcdir)/libs/MALLOC/includes/ \ + -I$(top_srcdir)/modules/output_stream/includes \ + -I$(top_srcdir)/modules/localization/includes \ + -I$(top_srcdir)/modules/api_scilab/includes \ + -DDEBUG + +# libscimpi_la_LDFLAGS = $(LAMPI_LDFLAGS) +libscimpi_la_LIBADD = $(OPENMPI_LIBS) + +# Name of the future library (.la will be replace by .so, .a, etc regarding +# the system) +pkglib_LTLIBRARIES = libscimpi.la + +# All the sources needed by libscimpi.la +libscimpi_la_SOURCES = $(GATEWAY_C_SOURCES) $(MPI_C_SOURCES) +#$(GATEWAY_FORTRAN_SOURCES) $(MPI_FORTRAN_SOURCES) + +#### Target ###### +modulename = mpi + +#### mpi : Conf files #### +libscimpi_la_rootdir = $(mydatadir) +libscimpi_la_root_DATA = readme.txt + +#### mpi : init scripts #### +libscimpi_la_etcdir = $(mydatadir)/etc +libscimpi_la_etc_DATA = etc/mpi.quit etc/mpi.start + +#### mpi : gateway declaration #### +libscimpi_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscimpi_la_sci_gateway_DATA = sci_gateway/mpi_gateway.xml + +#### mpi : include files #### +libscimpi_la_includedir = $(pkgincludedir)/mpi +libscimpi_la_include_HEADERS = includes/gw_mpi.h + +# Where all the Scilab stuff is installed (macros, help, ...) +mydatadir = $(pkgdatadir)/modules/$(modulename) + +# Set AM_* SCI detected settings +AM_CPPFLAGS = $(SCI_CPPFLAGS) +AM_CFLAGS = $(SCI_CFLAGS) +AM_CXXFLAGS = $(SCI_CXXFLAGS) +# append includes to AM_FFLAGS to manage fortran includes +AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/ + +# Tag shared libraries with the Scilab version +AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION) + +# splint options +SPLINT_OPTIONS = -weak -booltype BOOL + +########################### JAVA ###################################### +#### We are delegating java compilation to ant... Thanks to that +#### the procedure will be the same with Microsoft Windows (C) +#### and Linux/Unix +####################################################################### +TARGETS_ALL = $(am__append_1) + +################ MACROS ###################### +# Rule to build a macro +# NOT USED AT THE MOMENT +SUFFIXES = .sci + +########### INSTALL DOCUMENTATION ################### + +# Install documentation files into the right target +# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because +# automake needs the html files to be present which is not the case when +# we are building Scilab + +# Where it should be installed +pkgdocdir = $(mydatadir) + +# What is the mask of the help source +DOCMASKXML = *.xml + +# What is the mask of the MathML sources +DOCMASKMML = *.mml + +########### INSTALL DATA ################### +# Install macros, help & demos +# Where it should be installed +pkgmacrosdir = $(mydatadir) +# Which directory we process +MACRODIRS = macros/ +# Mask of the Scilab sources macros +MACROMASK = *.sci +# Mask of the Scilab executable sources macros +MACROBUILDMASK = *.sce +# Mask of the Scilab compiled macros +MACROBINMASK = *.bin +# List of the standard directory for tests +TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java +# Where the demos should be installed +pkgdemosdir = $(mydatadir) +# List of the standard directory for demos +DEMOS_DIR = demos +# List of the standard directory for examples +EXAMPLES_DIR = examples +# Where to export JAVA archives (.jar) +JARDIR = jar/ +# JAR files mask +JARMASK = *.jar +# Chapter file +HELP_CHAPTERDIR = help/ +HELP_CHAPTERFILE = addchapter.sce +HELP_CHAPTERLANG = en_US fr_FR pt_BR +all: all-am + +.SUFFIXES: +.SUFFIXES: .sci .bin .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/mpi/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/mpi/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/Makefile.incl.am: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ + } + +uninstall-pkglibLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ + done + +clean-pkglibLTLIBRARIES: + -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) + @list='$(pkglib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +sci_gateway/c/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c + @: > sci_gateway/c/$(am__dirstamp) +sci_gateway/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c/$(DEPDIR) + @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_init.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-gw_mpi.lo: sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_recv.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_send.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_isend.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_wait.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +src/c/$(am__dirstamp): + @$(MKDIR_P) src/c + @: > src/c/$(am__dirstamp) +src/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/c/$(DEPDIR) + @: > src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscimpi_la-serialization.lo: src/c/$(am__dirstamp) \ + src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscimpi_la-deserialization.lo: src/c/$(am__dirstamp) \ + src/c/$(DEPDIR)/$(am__dirstamp) + +libscimpi.la: $(libscimpi_la_OBJECTS) $(libscimpi_la_DEPENDENCIES) $(EXTRA_libscimpi_la_DEPENDENCIES) + $(AM_V_CCLD)$(libscimpi_la_LINK) -rpath $(pkglibdir) $(libscimpi_la_OBJECTS) $(libscimpi_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f sci_gateway/c/*.$(OBJEXT) + -rm -f sci_gateway/c/*.lo + -rm -f src/c/*.$(OBJEXT) + -rm -f src/c/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscimpi_la-deserialization.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscimpi_la-serialization.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +sci_gateway/c/libscimpi_la-sci_mpi_init.lo: sci_gateway/c/sci_mpi_init.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_init.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_init.lo `test -f 'sci_gateway/c/sci_mpi_init.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_init.c' object='sci_gateway/c/libscimpi_la-sci_mpi_init.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_init.lo `test -f 'sci_gateway/c/sci_mpi_init.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_init.c + +sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo: sci_gateway/c/sci_mpi_finalize.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo `test -f 'sci_gateway/c/sci_mpi_finalize.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_finalize.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_finalize.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_finalize.c' object='sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_finalize.lo `test -f 'sci_gateway/c/sci_mpi_finalize.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_finalize.c + +sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo: sci_gateway/c/sci_mpi_comm_size.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo `test -f 'sci_gateway/c/sci_mpi_comm_size.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_size.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_size.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_comm_size.c' object='sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_size.lo `test -f 'sci_gateway/c/sci_mpi_comm_size.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_size.c + +sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo: sci_gateway/c/sci_mpi_comm_rank.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo `test -f 'sci_gateway/c/sci_mpi_comm_rank.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_rank.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_comm_rank.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_comm_rank.c' object='sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_comm_rank.lo `test -f 'sci_gateway/c/sci_mpi_comm_rank.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_comm_rank.c + +sci_gateway/c/libscimpi_la-gw_mpi.lo: sci_gateway/c/gw_mpi.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-gw_mpi.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Tpo -c -o sci_gateway/c/libscimpi_la-gw_mpi.lo `test -f 'sci_gateway/c/gw_mpi.c' || echo '$(srcdir)/'`sci_gateway/c/gw_mpi.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-gw_mpi.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_mpi.c' object='sci_gateway/c/libscimpi_la-gw_mpi.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-gw_mpi.lo `test -f 'sci_gateway/c/gw_mpi.c' || echo '$(srcdir)/'`sci_gateway/c/gw_mpi.c + +sci_gateway/c/libscimpi_la-sci_mpi_recv.lo: sci_gateway/c/sci_mpi_recv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_recv.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_recv.lo `test -f 'sci_gateway/c/sci_mpi_recv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_recv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_recv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_recv.c' object='sci_gateway/c/libscimpi_la-sci_mpi_recv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_recv.lo `test -f 'sci_gateway/c/sci_mpi_recv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_recv.c + +sci_gateway/c/libscimpi_la-sci_mpi_send.lo: sci_gateway/c/sci_mpi_send.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_send.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_send.lo `test -f 'sci_gateway/c/sci_mpi_send.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_send.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_send.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_send.c' object='sci_gateway/c/libscimpi_la-sci_mpi_send.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_send.lo `test -f 'sci_gateway/c/sci_mpi_send.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_send.c + +sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo: sci_gateway/c/sci_mpi_irecv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo `test -f 'sci_gateway/c/sci_mpi_irecv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_irecv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_irecv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_irecv.c' object='sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_irecv.lo `test -f 'sci_gateway/c/sci_mpi_irecv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_irecv.c + +sci_gateway/c/libscimpi_la-sci_mpi_isend.lo: sci_gateway/c/sci_mpi_isend.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_isend.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_isend.lo `test -f 'sci_gateway/c/sci_mpi_isend.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_isend.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_isend.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_isend.c' object='sci_gateway/c/libscimpi_la-sci_mpi_isend.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_isend.lo `test -f 'sci_gateway/c/sci_mpi_isend.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_isend.c + +sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo: sci_gateway/c/sci_mpi_bcast.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo `test -f 'sci_gateway/c/sci_mpi_bcast.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_bcast.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_bcast.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_bcast.c' object='sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_bcast.lo `test -f 'sci_gateway/c/sci_mpi_bcast.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_bcast.c + +sci_gateway/c/libscimpi_la-sci_mpi_wait.lo: sci_gateway/c/sci_mpi_wait.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_wait.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_wait.lo `test -f 'sci_gateway/c/sci_mpi_wait.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_wait.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_wait.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_wait.c' object='sci_gateway/c/libscimpi_la-sci_mpi_wait.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_wait.lo `test -f 'sci_gateway/c/sci_mpi_wait.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_wait.c + +sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo: sci_gateway/c/sci_mpi_get_processor_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Tpo -c -o sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo `test -f 'sci_gateway/c/sci_mpi_get_processor_name.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_get_processor_name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Tpo sci_gateway/c/$(DEPDIR)/libscimpi_la-sci_mpi_get_processor_name.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_mpi_get_processor_name.c' object='sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscimpi_la-sci_mpi_get_processor_name.lo `test -f 'sci_gateway/c/sci_mpi_get_processor_name.c' || echo '$(srcdir)/'`sci_gateway/c/sci_mpi_get_processor_name.c + +src/c/libscimpi_la-serialization.lo: src/c/serialization.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT src/c/libscimpi_la-serialization.lo -MD -MP -MF src/c/$(DEPDIR)/libscimpi_la-serialization.Tpo -c -o src/c/libscimpi_la-serialization.lo `test -f 'src/c/serialization.c' || echo '$(srcdir)/'`src/c/serialization.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscimpi_la-serialization.Tpo src/c/$(DEPDIR)/libscimpi_la-serialization.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/serialization.c' object='src/c/libscimpi_la-serialization.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o src/c/libscimpi_la-serialization.lo `test -f 'src/c/serialization.c' || echo '$(srcdir)/'`src/c/serialization.c + +src/c/libscimpi_la-deserialization.lo: src/c/deserialization.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -MT src/c/libscimpi_la-deserialization.lo -MD -MP -MF src/c/$(DEPDIR)/libscimpi_la-deserialization.Tpo -c -o src/c/libscimpi_la-deserialization.lo `test -f 'src/c/deserialization.c' || echo '$(srcdir)/'`src/c/deserialization.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscimpi_la-deserialization.Tpo src/c/$(DEPDIR)/libscimpi_la-deserialization.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/deserialization.c' object='src/c/libscimpi_la-deserialization.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libscimpi_la_CFLAGS) $(CFLAGS) -c -o src/c/libscimpi_la-deserialization.lo `test -f 'src/c/deserialization.c' || echo '$(srcdir)/'`src/c/deserialization.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs + -rm -rf src/c/.libs src/c/_libs +install-libscimpi_la_etcDATA: $(libscimpi_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_etc_DATA)'; test -n "$(libscimpi_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_etcdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscimpi_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscimpi_la_etcdir)" || exit $$?; \ + done + +uninstall-libscimpi_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_etc_DATA)'; test -n "$(libscimpi_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscimpi_la_rootDATA: $(libscimpi_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_root_DATA)'; test -n "$(libscimpi_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_rootdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscimpi_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscimpi_la_rootdir)" || exit $$?; \ + done + +uninstall-libscimpi_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_root_DATA)'; test -n "$(libscimpi_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_rootdir)'; $(am__uninstall_files_from_dir) +install-libscimpi_la_sci_gatewayDATA: $(libscimpi_la_sci_gateway_DATA) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_sci_gateway_DATA)'; test -n "$(libscimpi_la_sci_gatewaydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_sci_gatewaydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscimpi_la_sci_gatewaydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" || exit $$?; \ + done + +uninstall-libscimpi_la_sci_gatewayDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_sci_gateway_DATA)'; test -n "$(libscimpi_la_sci_gatewaydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir) +install-libscimpi_la_includeHEADERS: $(libscimpi_la_include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libscimpi_la_include_HEADERS)'; test -n "$(libscimpi_la_includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscimpi_la_includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscimpi_la_includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libscimpi_la_includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libscimpi_la_includedir)" || exit $$?; \ + done + +uninstall-libscimpi_la_includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libscimpi_la_include_HEADERS)'; test -n "$(libscimpi_la_includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscimpi_la_includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) all-local +installdirs: + for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscimpi_la_etcdir)" "$(DESTDIR)$(libscimpi_la_rootdir)" "$(DESTDIR)$(libscimpi_la_sci_gatewaydir)" "$(DESTDIR)$(libscimpi_la_includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + -rm -f sci_gateway/c/$(am__dirstamp) + -rm -f src/c/$(DEPDIR)/$(am__dirstamp) + -rm -f src/c/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local \ + clean-pkglibLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local install-libscimpi_la_etcDATA \ + install-libscimpi_la_includeHEADERS \ + install-libscimpi_la_rootDATA \ + install-libscimpi_la_sci_gatewayDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-pkglibLTLIBRARIES + +install-html: install-html-am + +install-html-am: install-html-local + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libscimpi_la_etcDATA \ + uninstall-libscimpi_la_includeHEADERS \ + uninstall-libscimpi_la_rootDATA \ + uninstall-libscimpi_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \ + check-local clean clean-generic clean-libtool clean-local \ + clean-pkglibLTLIBRARIES cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-local distclean-tags distdir dvi dvi-am html html-am \ + info info-am install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am \ + install-html-local install-info install-info-am \ + install-libscimpi_la_etcDATA \ + install-libscimpi_la_includeHEADERS \ + install-libscimpi_la_rootDATA \ + install-libscimpi_la_sci_gatewayDATA install-man install-pdf \ + install-pdf-am install-pkglibLTLIBRARIES install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-libscimpi_la_etcDATA \ + uninstall-libscimpi_la_includeHEADERS \ + uninstall-libscimpi_la_rootDATA \ + uninstall-libscimpi_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + + +# This target enables tests for Scilab +check-local: $(top_builddir)/scilab-bin test + if test -d $(mydatadir)/tests; then \ + @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \ + fi +check-code: + if test -f build.xml; then \ + $(ANT) checkstyle; \ + fi + if test -x "$(SPLINT)"; then \ + $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \ + fi +@NEED_JAVA_TRUE@java: +# Some configurations needs to export JAVA_HOME in the current env +@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ +@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ +@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \ +@NEED_JAVA_TRUE@ $(ANT); \ +@NEED_JAVA_TRUE@ fi + +@NEED_JAVA_TRUE@clean-java: +# Some configurations needs to export JAVA_HOME in the current env +@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ +@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ +@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \ +@NEED_JAVA_TRUE@ $(ANT) clean; \ +@NEED_JAVA_TRUE@ fi; + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +@SWIG_TRUE@swig: $(SWIG_WRAPPERS) +@SWIG_TRUE@ @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \ +@SWIG_TRUE@ SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \ +@SWIG_TRUE@ if test -n "$(SWIG_WRAPPERS)"; then \ +@SWIG_TRUE@ for file in $(SWIG_WRAPPERS) ; do \ +@SWIG_TRUE@ echo "Swig process of $$file (Java) ..."; \ +@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \ +@SWIG_TRUE@ done; \ +@SWIG_TRUE@ fi + +@SWIG_TRUE@swig-scilab: $(SWIG_SCILAB_WRAPPERS) +@SWIG_TRUE@ @SWIG_OUTDIR=src/swig/; \ +@SWIG_TRUE@ if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \ +@SWIG_TRUE@ for file in $(SWIG_SCILAB_WRAPPERS) ; do \ +@SWIG_TRUE@ echo "Swig process of $$file (Scilab) ..."; \ +@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \ +@SWIG_TRUE@ done; \ +@SWIG_TRUE@ fi + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +@GIWS_TRUE@giws: $(GIWS_WRAPPERS) +@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/; \ +@GIWS_TRUE@ MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \ +@GIWS_TRUE@ if test -n "$(GIWS_WRAPPERS)"; then \ +@GIWS_TRUE@ for file in $(GIWS_WRAPPERS) ; do \ +@GIWS_TRUE@ echo "GIWS process of $$file ..."; \ +@GIWS_TRUE@ if test -z "$(GIWS_OPTIONS)"; then \ +@GIWS_TRUE@ $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +@GIWS_TRUE@ else \ +@GIWS_TRUE@ echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \ +@GIWS_TRUE@ $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +@GIWS_TRUE@ fi \ +@GIWS_TRUE@ done; \ +@GIWS_TRUE@ fi + +@GIWS_TRUE@giws-exception: +@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/;\ +@GIWS_TRUE@ echo "GIWS: Generation of exception class ..."; \ +@GIWS_TRUE@ $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR + +macros: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been built"; \ + else \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\ + fi) + +# Removes the macros +clean-macros: +# Removes macros (*.bin generated from .sci) + @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \ + rm -f $(builddir)/$$dir/$(MACROBINMASK); \ + done + +test: +# More tests could be added here + @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT) test; \ + fi + +all-local: $(TARGETS_ALL) + +.sci.bin: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been build"; \ + else \ + echo "Creating $@"; \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \ + fi ) + +install-html-local: + +install-data-local-local: +# Mainly for javasci + @if test -d $(srcdir)/javadoc; then \ + cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \ + fi +# If the user wants the help sources to be installed +@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of XML sources of help files --------"; \ +@INSTALL_HELP_XML_TRUE@ for lang in $(ALL_LINGUAS); do \ +@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/$$lang; then \ +@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \ +@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \ +@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \ +@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \ +@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \ +@INSTALL_HELP_XML_TRUE@ done ; \ +@INSTALL_HELP_XML_TRUE@ fi; \ +@INSTALL_HELP_XML_TRUE@ fi; \ +@INSTALL_HELP_XML_TRUE@ done; \ +@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of MathML sources --------"; \ +@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/mml/; then \ +@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \ +@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \ +@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \ +@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \ +@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \ +@INSTALL_HELP_XML_TRUE@ done ; \ +@INSTALL_HELP_XML_TRUE@ fi; \ +@INSTALL_HELP_XML_TRUE@ fi +install-data-local: +# Install the tests + @echo "-------- Install tests (if any) --------"; \ + for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the help chapter + @echo "-------- Install the help chapter (if any) --------"; \ + for lang in $(HELP_CHAPTERLANG); do \ + HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \ + if test -f $$HELPFILE; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + fi; \ + done +# Install the demos & examples + @echo "-------- Install demos & examples (if any) --------"; \ + for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the macros + @echo "-------- Install macros (if any) --------"; \ + for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + if test -d $(srcdir)/$$dir/; then \ + FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\ + if test -n "$(MACROSSPECIALEXT)"; then \ + specialExtDir=""; \ + for specialExt in $(MACROSSPECIALEXT); do \ + specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \ + done; \ + FILELIST="$$FILELIST $$specialExtDir"; \ + fi; \ + for file in `ls -1 $$FILELIST 2>/dev/null`; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \ + done; \ + fi; \ + done +# Install java files (.jar) + @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \ + echo "-------- Install jar files --------"; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \ + for file in $(srcdir)/$(JARDIR)$(JARMASK); do\ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \ + done ; \ + fi + +########### CLEAN ################### +# Clean help (generated automatically by Scilab) +# It used to clean the macro (clean-macros) but this was causing +# make clean && make to fail Scilab startup +@NEED_JAVA_TRUE@clean-local: clean-java +@NEED_JAVA_FALSE@clean-local: + +distclean-local: + rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_* + +.PHONY: macros java swig giws + +# Provides macros compilation, Java compilation, cleaning + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/modules/mpi/TODO b/modules/mpi/TODO new file mode 100755 index 000000000..a0db945d7 --- /dev/null +++ b/modules/mpi/TODO @@ -0,0 +1,55 @@ + +* To implement: +MPI_Barrier +MPI_Reduce +MPI_Cancel +MPI_Test + +Workaround: allocated a big data + + +* Write more test cases with big data +* + +* ecrire d'autres tests +* gestion du tag dans le send et le recv +=> a mettre à jour. c'est hardcodé dans un des deux +* gestion des irecv/isend +* gestion des gather +* MPI barrier +* test unitaire de bcast +* porter l'exemple pi.cc +// x = mpiallreduce(y,operation,comm) + + +voir MPICOMMSPAWN +MPIINTERCOMMMERGE + +freemat a + context->addFunction("mpisend",MPISend,4,0,"array","dest","tag","communicator"); + context->addFunction("mpirecv",MPIRecv,3,3,"source","tag","communicator"); + context->addFunction("mpibcast",MPIBcast,3,1,"array","root","communicator"); + context->addFunction("mpibarrier",MPIBarrier,1,0,"communicator"); + context->addFunction("mpicommrank",MPICommRank,1,1,"communicator"); + context->addFunction("mpicommsize",MPICommSize,1,1,"communicator"); + context->addFunction("mpireduce",MPIReduce,4,1,"y","operation","root","comm"); + context->addFunction("mpiallreduce",MPIAllReduce,3,1,"y","operation","root"); + context->addFunction("mpiinitialized",MPIInitialized,0,1); + context->addFunction("mpiinit",MPIInit,0,0); + context->addFunction("mpifinalize",MPIFinalize,0,0); + context->addFunction("mpicommgetparent",MPICommGetParent,0,1); + context->addFunction("mpicommspawn",MPICommSpawn,5,2, + "command","args","maxprocs","root","comm"); + context->addFunction("mpiintercommmerge",MPIIntercommMerge,2,1,"intercomm","highflag"); +} + + + +Mandatory functions : + +MPI_Reduce +MPI_Finalize + +juste: +MPI_Comm_size(1); +fais cracher scilab (manque probablement un check que mpi est bien init) diff --git a/modules/mpi/etc/mpi.quit b/modules/mpi/etc/mpi.quit new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/mpi/etc/mpi.quit diff --git a/modules/mpi/etc/mpi.start b/modules/mpi/etc/mpi.start new file mode 100755 index 000000000..11c6af430 --- /dev/null +++ b/modules/mpi/etc/mpi.start @@ -0,0 +1,6 @@ +// ==================================================================== +// gui module initialisation file +// CopyrighDIGITEO 2009 +// ==================================================================== +//Load functions libraries +//load('SCI/modules/mpi/macros/lib'); diff --git a/modules/mpi/examples/MPIHelloWorld.sci b/modules/mpi/examples/MPIHelloWorld.sci new file mode 100755 index 000000000..04af78d41 --- /dev/null +++ b/modules/mpi/examples/MPIHelloWorld.sci @@ -0,0 +1,38 @@ +function MPIHelloWorld() + //////////// + // PARALLEL / initialization, include MPI_Init time in measurement + //////////// + MPI_Init(); // should have lambooted first + rnk = MPI_Comm_rank(); // let it abort if it fails + sizeNodes = MPI_Comm_size(); + + SLV = rnk; // handy shortcuts, master is rank 0 + Master = ~ SLV; // slaves are all other + + if Master + + disp("We have "+string(sizeNodes) + " processors") + for slaveId = 1:sizeNodes-1 + MPI_Send("== FROM Master == MPI_Send",slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag) + disp("<=> VALUE BACK <=> "+valueBack+ " from " +string(slaveId)) + + end + else + // slave + disp("Processor "+string(rnk)) + rankSource=0 + tag=0 + value=MPI_Recv(rankSource, tag) + value="(Modified by the slave) "+value + MPI_Send(value,0) + + end + + MPI_Finalize() + +endfunction diff --git a/modules/mpi/examples/MPIHelloWorldDouble.sci b/modules/mpi/examples/MPIHelloWorldDouble.sci new file mode 100755 index 000000000..3cac2c0f8 --- /dev/null +++ b/modules/mpi/examples/MPIHelloWorldDouble.sci @@ -0,0 +1,38 @@ +function MPIHelloWorldDouble() + //////////// + // PARALLEL / initialization, include MPI_Init time in measurement + //////////// + MPI_Init(); // should have lambooted first + rnk = MPI_Comm_rank(); // let it abort if it fails + sizeNodes = MPI_Comm_size(); + + SLV = rnk; // handy shortcuts, master is rank 0 + Master = ~ SLV; // slaves are all other + + if Master + + disp("We have "+string(sizeNodes) + " processors") + for slaveId = 1:sizeNodes-1 + MPI_Send([23,42;68,62],slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag) + disp("<=> VALUE BACK <=> "+valueBack+ " from " +string(slaveId)) + + end + else + // slave + disp("Processor "+string(rnk)) + rankSource=0 + tag=0 + value=MPI_Recv(rankSource, tag) + value="(Modified by the slave) "+value + MPI_Send(value,0) + + end + + MPI_Finalize() + +endfunction diff --git a/modules/mpi/examples/MPIPi.sci b/modules/mpi/examples/MPIPi.sci new file mode 100755 index 000000000..14b5ebe7b --- /dev/null +++ b/modules/mpi/examples/MPIPi.sci @@ -0,0 +1,106 @@ +function MPIPi(N,mod) + // Pi_seq: Compute PI (sequential) by num.integr. of arctan(x) in [0..1] + // + // Pi_seq [ (N) ] + // + // N [1E7] #subdivisions of the [0, 1] interval + // mod ['s'] communication modality: (s)end (r)educe + // printed results struct contains + // pi estimated pi value + // err error + // time from argument xmit to pi computed + // + // Examples: + // + // octave:1> Pi_seq + // results = + // { + // pi = 3.1416 + // err = -6.4837e-14 + // time = 2.7761 + // } + // + + //////////////////// + // ArgChk // + //////////////////// + if argn(2)<1, N=1E7; end + if argn(2)<2, mod="s"; end + if argn(2)>2, error("usage MPIPi(N,mod)"); end + flag=0; + [%H,%ierr] = evstr(string(N)); + flag=flag | size(N,"*")<>1 | %ierr<>0; + flag=flag | fix(N)~=N | N<1; + if flag, error("usage MPIPi( <int> N>0, <char> mod==''s|r'' )"), end + + //////////////////////////////////// + // Results struct // + //////////////////////////////////// + results.pi =0; + results.err =0; + results.time=0; + + //////////// + // PARALLEL / initialization, include MPI_Init time in measurement + //////////// + // T=clock; / + //////////// + MPI_Init(); // should have lambooted first + rnk = MPI_Comm_rank(); // let it abort if it fails + siz = MPI_Comm_size(); + + SLV = rnk; // handy shortcuts, master is rank 0 + MST = ~ SLV; // slaves are all other + + if MST + disp("Master here") + else + disp("Slave here") + end + + //////////// + // PARALLEL / computation (depends on rank/size) + //////////// // vectorized code, equivalent to + width=1/N; lsum=0; // for i=rnk:siz:N-1 + i=rnk:siz:N-1; // x=(i+0.5)*width; + x=(i+0.5)*width; // lsum=lsum+4/(1+x^2); + lsum=sum(4 ./(1+x.^2)); // end + // mem-bound, N=1E7 => size(i)=8E7/siz (80MB!!!) + //////////// + // PARALLEL / reduction and finish + //////////// + select mod + case "s", TAG=7; // Any tag would do + if SLV // All slaves send result back + MPI_Send(lsum, 0,TAG); + else // Here at master + Sum =lsum; // save local result + for slv=1:siz-1 // collect in any order + // MPI_Recv(lsum,MPI_ANY_SOURCE,TAG,MPI_COMM_WORLD); + MPI_Recv(lsum,TAG); + Sum = Sum + lsum; // and accumulate + end // order: slv or MPI_ANY_SOURCE + end + case "r", Sum=0; // reduction master = rank 0 @ WORLD + MPI_Reduce(lsum,Sum, MPI_SUM, 0,MPI_COMM_WORLD); + end + + MPI_Finalize; + + ////////////////////////////////////////////////////////////////// + //results.time = etime(clock,T); // + ////////////////////////////////////////////////////////////////// + results.err = Sum-%pi; + results.pi = Sum // ; + + + ////////////////////////////// + // FINAL CHECK // + ////////////////////////////// + if abs(results.err)>5E-10 + warning("pretty nice pi value! go fix it") + end + disp(results) +endfunction + + diff --git a/modules/mpi/examples/MPIPi_seq.sci b/modules/mpi/examples/MPIPi_seq.sci new file mode 100755 index 000000000..fc7216065 --- /dev/null +++ b/modules/mpi/examples/MPIPi_seq.sci @@ -0,0 +1,68 @@ +function MPIPi_seq(N) + // Pi_seq: Compute PI (sequential) by num.integr. of arctan(x) in [0..1] + // + // Pi_seq [ (N) ] + // + // N [1E7] #subdivisions of the [0, 1] interval + // + // printed results struct contains + // pi estimated pi value + // err error + // time from argument xmit to pi computed + // + // Examples: + // + // octave:1> Pi_seq + // results = + // { + // pi = 3.1416 + // err = -6.4837e-14 + // time = 2.7761 + // } + // + + //////////////////// + // ArgChk // + //////////////////// + if argn(2)<1, N=1E7; end + if argn(2)>1, error("usage Pi_seq(N)"); end + flag=0; + [%H,%ierr] = evstr(string(N)); + flag=flag | size(N,"*")<>1 | %ierr<>0; + flag=flag | fix(N)~=N | N<1; + if flag, error("usage Pi_seq( <int> N>0, <char> mod==''s|r'' )"), end + + //////////////////////////////////// + // Results struct // + //////////////////////////////////// + results.pi =0; + results.err =0; + results.time=0; + + //////////////////////////// + // SEQUENTIAL // code, vectorized + //////////////////////////// + // T=clock; // + //////////////////////////// // vectorized code, equivalent to + width=1/N; Sum=0; // for i=0:N-1 + i=0:N-1; // x=(i+0.5)*width; + x=(i+0.5)*width; // Sum=Sum+4/(1+x^2); + Sum=sum(4 ./ (1+x.^2)); // end + Sum = Sum/N ; // 1/N better at end: don't lose resolution + ////////////////////////////////////////////////////////////////// + //results.time = etime(clock,T); // + ////////////////////////////////////////////////////////////////// + results.err = Sum-%pi; + results.pi = Sum // ; + + + ////////////////////////////// + // FINAL CHECK // + ////////////////////////////// + if abs(results.err)>5E-10 + warning("pretty nice pi value! go fix it") + end + disp(results) +endfunction + + diff --git a/modules/mpi/examples/foo.sci b/modules/mpi/examples/foo.sci new file mode 100755 index 000000000..875197c6e --- /dev/null +++ b/modules/mpi/examples/foo.sci @@ -0,0 +1,15 @@ +MPI_Init(); +rnk = MPI_Comm_rank() +sizeNodes = MPI_Comm_size(); +SLV = rnk; +Master = ~ SLV; + +if Master then + disp("Master"); + MPI_Send(rand(10,10), 1); +else + val = MPI_Recv(0, 0); + disp(val, rnk) +end + +MPI_Finalize(); diff --git a/modules/mpi/examples/simple.sci b/modules/mpi/examples/simple.sci new file mode 100755 index 000000000..908884f99 --- /dev/null +++ b/modules/mpi/examples/simple.sci @@ -0,0 +1,9 @@ +function simple() + disp("simple"); + MPI_Init(); + disp(MPI_Comm_rank()); // let it abort if it fails + disp(MPI_Comm_size()); + disp("simple 2"); + MPI_Finalize() + +endfunction
\ No newline at end of file diff --git a/modules/mpi/help/en_US/MPI_Bcast.xml b/modules/mpi/help/en_US/MPI_Bcast.xml new file mode 100755 index 000000000..98b41eca6 --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Bcast.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Bcast" xml:lang="en"> + <refnamediv> + <refname>MPI_Bcast</refname> + <refpurpose>Broadcasts a message from the process with rank root to all other processes of the group.</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>res = MPI_Bcast(value,rootID)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>The value to be sent to all nodes.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rootID</term> + <listitem> + <para>The source of the message</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>The broadcasted value</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Send a variable to all nodes. The value should be retrieved by the node with the function <link linkend="MPI_Recv">MPI_Recv</link>. + </para> + <para>On the internal technical side, two broadcasts are used transparently. The first one sends the size of the data, the second the data themself. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"> + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; // handy shortcuts, master is rank 0 + Master = ~ SLV; // slaves are all other + a=-1 + if Master + // Declare a + a=42 + end + b=MPI_Bcast(a, 0); + assert_checkequal(b,42); + MPI_Finalize(); + </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/MPI_Init.xml b/modules/mpi/help/en_US/MPI_Init.xml new file mode 100755 index 000000000..f4291de88 --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Init.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Init" xml:lang="en"> + <refnamediv> + <refname>MPI_Init</refname> + <refpurpose>Initialize the MPI environnement</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>res = MPI_Init()</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>The value to be sent to the specified node.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>node</term> + <listitem> + <para>The node to send the data</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>The result of the operation (true if success, false if failed)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Send a variable to a specified node. The value should be retrieved by the node with the function <link linkend="MPI_Send">MPI_Send</link>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example">//TODO</programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/MPI_Irecv.xml b/modules/mpi/help/en_US/MPI_Irecv.xml new file mode 100755 index 000000000..85961a42c --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Irecv.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Irecv" xml:lang="en"> + <refnamediv> + <refname>MPI_Irecv</refname> + <refpurpose>Nonblocking receive of data from a node</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>MPI_Irecv(rank,tag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>rank</term> + <listitem> + <para>The rank. TODO</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tag</term> + <listitem> + <para>The tag. TODO</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Receive a variable from a specified node in a nonblock (asynchronous) way. The value is usually sent by the function <link linkend="MPI_Isend">MPI_Isend</link>. + </para> + <para> + Note that, due to its asynchronous nature, MPI_Irecv does not return any value. The value sent by the source node will be returned by <link linkend="MPI_Wait">MPI_Wait</link>. + </para> + </refsection> + <refsection> + <title>Technical implementation</title> + <para> + For more information on the implementation of Scilab/MPI, please see <link linkend="mpi_technical">Technical details about the implementation</link> + </para> + </refsection> + <refsection> + <title>Examples</title> + <title>Examples</title> + <programlisting role="example"><![CDATA[ + + + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; + Master = ~ SLV; + + assert_checkequal(MPI_Comm_size(), 2); + + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv does not return any value + value=MPI_Wait(42) // the value will be returned by MPI_Wait + assert_checkequal(value,2); + end + + MPI_Finalize(); + exit() + + ]]> </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Isend">MPI_Isend</link> + </member> + <member> + <link linkend="MPI_Wait">MPI_Wait</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/MPI_Isend.xml b/modules/mpi/help/en_US/MPI_Isend.xml new file mode 100755 index 000000000..3396b34cc --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Isend.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Isend" xml:lang="en"> + <refnamediv> + <refname>MPI_Isend</refname> + <refpurpose>Nonblocking send data from a node to an other</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>res = MPI_Isend(value,node)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>The value to be sent to the specified node.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>node</term> + <listitem> + <para>The node to send the data</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>The result of the operation (true if success, false if failed)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Send a variable to a specified node in a nonblock (asynchronous) way. The value should be retrieved by the node with the function <link linkend="MPI_Irecv">MPI_Irecv</link>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ + + + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; + Master = ~ SLV; + + assert_checkequal(MPI_Comm_size(), 2); + + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv does not return any value + value=MPI_Wait(42) // the value will be returned by MPI_Wait + assert_checkequal(value,2); + end + + MPI_Finalize(); + exit() + + ]]> </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Irecv">MPI_Irecv</link> + </member> + <member> + <link linkend="MPI_Wait">MPI_Wait</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/MPI_Recv.xml b/modules/mpi/help/en_US/MPI_Recv.xml new file mode 100755 index 000000000..3bd3c8331 --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Recv.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Recv" xml:lang="en"> + <refnamediv> + <refname>MPI_Recv</refname> + <refpurpose>Recv data from a node</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>value = MPI_Recv(rank,tag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>rank</term> + <listitem> + <para>The rank. TODO</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tag</term> + <listitem> + <para>The tag. TODO</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>The value received from MPI_Send.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Receive a variable from a specified node. The value is usually sent by the function <link linkend="MPI_Send">MPI_Send</link>. + </para> + </refsection> + <refsection> + <title>Technical implementation</title> + <para> + For more information on the implementation of Scilab/MPI, please see <link linkend="mpi_technical">Technical details about the implementation</link> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"> + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; // handy shortcuts, master is rank 0 + Master = ~ SLV; // slaves are all other + tag=0; + if Master + // The master node + for slaveId = 1:sizeNodes-1 + // Send data to the slaves + value = rand(100,100) + rand(100,100) * %i; + MPI_Send(value, slaveId); + end + + for slaveId = 1:sizeNodes-1 + valueBack=MPI_Recv(slaveId, tag); + // Check that the slaves gaves us what we expected + assert_checkequal(valueBack,value + 1); + end + else + // The slaves + rankSource=0; + // Receive the information from the master + value=MPI_Recv(rankSource); + // Increment all the values by one + value=value+1; + // Send back to the master + MPI_Send(value,0); + + end + + MPI_Finalize(); + + </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Send">MPI_Send</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/MPI_Send.xml b/modules/mpi/help/en_US/MPI_Send.xml new file mode 100755 index 000000000..afb11c936 --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Send.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Send" xml:lang="en"> + <refnamediv> + <refname>MPI_Send</refname> + <refpurpose>Send data from a node to an other</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>res = MPI_Send(value,node)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>The value to be sent to the specified node.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>node</term> + <listitem> + <para>The node to send the data</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>The result of the operation (true if success, false if failed)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Send a variable to a specified node. The value should be retrieved by the node with the function <link linkend="MPI_Recv">MPI_Recv</link>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"> + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; // handy shortcuts, master is rank 0 + Master = ~ SLV; // slaves are all other + tag=0; + if Master + // The master node + for slaveId = 1:sizeNodes-1 + // Send data to the slaves + value = rand(100,100) + rand(100,100) * %i; + MPI_Send(value, slaveId); + end + + for slaveId = 1:sizeNodes-1 + valueBack=MPI_Recv(slaveId, tag); + // Check that the slaves gaves us what we expected + assert_checkequal(valueBack,value + 1); + end + else + // The slaves + rankSource=0; + // Receive the information from the master + value=MPI_Recv(rankSource); + // Increment all the values by one + value=value+1; + // Send back to the master + MPI_Send(value,0); + + end + + MPI_Finalize(); + + </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/MPI_Wait.xml b/modules/mpi/help/en_US/MPI_Wait.xml new file mode 100755 index 000000000..afc69eb89 --- /dev/null +++ b/modules/mpi/help/en_US/MPI_Wait.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Wait" xml:lang="en"> + <refnamediv> + <refname>MPI_Wait</refname> + <refpurpose>Waits for an MPI request to complete </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>res = MPI_Wait(request)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>request</term> + <listitem> + <para>The MPI request.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>The variable sent by MPI_Isend and matching the MPI Request declared by MPI_Irecv</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para>TODO.</para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ + + + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; + Master = ~ SLV; + + assert_checkequal(MPI_Comm_size(), 2); + + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv does not return any value + value=MPI_Wait(42) // the value will be returned by MPI_Wait + assert_checkequal(value,2); + end + + MPI_Finalize(); + exit() + + ]]> </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Irecv">MPI_Irecv</link> + </member> + <member> + <link linkend="MPI_Isend">MPI_Isend</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/addchapter.sce b/modules/mpi/help/en_US/addchapter.sce new file mode 100755 index 000000000..a56e069e4 --- /dev/null +++ b/modules/mpi/help/en_US/addchapter.sce @@ -0,0 +1,10 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +add_help_chapter("Scilab MPI",SCI+"/modules/mpi/help/en_US",%T); diff --git a/modules/mpi/help/en_US/mpi.xml b/modules/mpi/help/en_US/mpi.xml new file mode 100755 index 000000000..bafec3ceb --- /dev/null +++ b/modules/mpi/help/en_US/mpi.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<!-- This document was created with Syntext Serna Free. --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="mpi" xml:lang="en"> + <refnamediv> + <refname>MPI</refname> + <refpurpose>Access to MPI features from Scilab</refpurpose> + </refnamediv> + <refsection> + <title>Description</title> + <para>A MPI interface is provided to Scilab. This interface allows high-performance Message Passing computations.</para> + <para> + Like any other MPI applications, Scilab/MPI as be started through the <literal>mpirun</literal> command usually with the argument <literal>-c</literal> to specify the number of nodes started. + </para> + </refsection> + <refsection> + <title>Supported datatype</title> + <para> + The Scilab MPI implementation supports the following Scilab datatypes (under the matrix or scalar form): + <simplelist type="inline"> + <member>Double</member><member>Boolean</member><member>int (all)</member><member>String</member><member>Sparse</member><member>Boolean Sparse</member> + </simplelist> + For now, advanced data structures like list, tlist or mlist are not supported. Opening a new bug report to see them supported is a good way. + </para> + </refsection> + <refsection> + <title>Example of Scilab MPI</title> + <programlisting role="scilab"><![CDATA[ +// TODO. Add an example (PI ?) + +]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + <member> + <link linkend="mpi_technical">Technical details about the implementation</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/en_US/mpi_technical.xml b/modules/mpi/help/en_US/mpi_technical.xml new file mode 100755 index 000000000..302486be4 --- /dev/null +++ b/modules/mpi/help/en_US/mpi_technical.xml @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<!-- This document was created with Syntext Serna Free. --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="mpi_technical" xml:lang="en"> + <refnamediv> + <refname>MPI implementation</refname> + <refpurpose>Technical details about the implementation</refpurpose> + </refnamediv> + <refsection> + <title>Sending and receiving data</title> + <para> + The main problem of a MPI implementation from a scripting language is due to their native characterics. Indeed, scripting language are, by nature, using dynamic variables of various <literal>types</literal> and sizes. + </para> + <para> + The implementation of MPI in Scilab is using an internal serialization and deserialization process to the MPI datatype MPI_INT. The send functions (MPI_Send, MPI_Isend, MPI_BCast, etc) will convert all the supported datatypes to MPI_INT while receiving functions (MPI_Recv, MPI_Irecv, etc) will <literal>restore</literal> the original variables. + </para> + <para>Like their memory representation in the 5 family, variables are serialized in the following way:</para> + <para> + Double, Boolean, String(?) + <informaltable border="1"> + <tr> + <td> + <para>Type</para> + </td> + <td> + <para>Number of rows</para> + </td> + <td> + <para>Number of columns</para> + </td> + <td> + <para>Complex (if relevant)</para> + </td> + <td> + <para>Data</para> + </td> + </tr> + </informaltable> + </para> + <para>Integer + <informaltable border="1"> + <tr> + <td> + <para>Type</para> + </td> + <td> + <para>Number of rows</para> + </td> + <td> + <para>Number of columns</para> + </td> + <td> + <para>Precision</para> + </td> + <td> + <para>Data</para> + </td> + </tr> + </informaltable> + <para> + </para> + Sparse (double or boolean) + <informaltable border="1"> + <tr> + <td> + <para>Type</para> + </td> + <td> + <para>Number of rows</para> + </td> + <td> + <para>Number of columns</para> + </td> + <td> + <para>Complex</para> + </td> + <td> + <para>Number of items</para> + </td> + <td> + <para>Data</para> + </td> + </tr> + </informaltable> + </para> + <para>Other potential solutions have been considered but rejected for various reasons: + <simplelist type="inline"> + <member> + <literal>MPI based new datatype</literal> Needs to know <literal>a priori</literal> the size of the variable. + </member> + <member> + <literal>One send for the metadata (size, type), one send for the data</literal> While decreasing the performances, the code would be strongly complexified. + </member> + </simplelist> + </para> + </refsection> + <refsection> + <title>Asynchronous exchanges</title> + <para>Because MPI_Irecv and MPI_Isend standard behavior are not really the common way to do in the Scilab language, MPI_Wait returns a value in the Scilab MPI binding. + </para> + <para>In order to store the list of requests and MPI variables expected by MPI_Irecv/MPI_Wait, static C structures containing at max 10 000 elements are used. They will be used to store the various MPI Request used for asynchronous exchanges and the reference to the expected variable from MPI_Irecv. The received value are returned by MPI_Wait. + </para> + <para>In the following example, the request named "42" will be stored in this datastructure. + <programlisting role="example"><![CDATA[ + + + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + + SLV = rnk; + Master = ~ SLV; + + assert_checkequal(MPI_Comm_size(), 2); + + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv does not return any value + value=MPI_Wait(42) // the value will be returned by MPI_Wait + assert_checkequal(value,2); + end + + MPI_Finalize(); + exit() + + ]]> </programlisting> + </para> + </refsection> + + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="mpi">MPI overview</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/fr_FR/addchapter.sce b/modules/mpi/help/fr_FR/addchapter.sce new file mode 100755 index 000000000..5de2c60ce --- /dev/null +++ b/modules/mpi/help/fr_FR/addchapter.sce @@ -0,0 +1,10 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +add_help_chapter("Scilab MPI",SCI+"/modules/mpi/help/fr_FR",%T); diff --git a/modules/mpi/help/ja_JP/MPI_Bcast.xml b/modules/mpi/help/ja_JP/MPI_Bcast.xml new file mode 100755 index 000000000..9baec8264 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Bcast.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Bcast" xml:lang="ja"> + <refnamediv> + <refname>MPI_Bcast</refname> + <refpurpose> + ランクルートを有ã™ã‚‹ãƒ—ãƒã‚»ã‚¹ã‹ã‚‰ã‚°ãƒ«ãƒ¼ãƒ—ã® + ä»–ã®å…¨ãƒ—ãƒã‚»ã‚¹ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ブãƒãƒ¼ãƒ‰ã‚ャストã™ã‚‹. + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>res = MPI_Bcast(value,rootID)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>全ノードã«é€ä¿¡ã™ã‚‹å€¤.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rootID</term> + <listitem> + <para>メッセージã®ã‚½ãƒ¼ã‚¹</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>ブãƒãƒ¼ãƒ‰ã‚ャストã•ã‚ŒãŸå€¤</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 全ノードã«å¤‰æ•°ã‚’é€ä¿¡ã—ã¾ã™. + ã“ã®å€¤ã¯é–¢æ•°<link linkend="MPI_Recv">MPI_Recv</link>ã«ã‚ˆã‚Š + ノードã§å–å¾—ã•ã‚Œã¾ã™. + </para> + <para> + 内部的ãªæŠ€è¡“é¢ã§ã¯,2ã¤ã®ãƒ–ãƒãƒ¼ãƒ‰ã‚ャストãŒé€éŽçš„ã« + 使用ã•ã‚Œã¾ã™. + åˆå›žã¯ãƒ‡ãƒ¼ã‚¿ã®å¤§ãã•,2回目ã¯ãƒ‡ãƒ¼ã‚¿è‡ªä½“ã‚’é€ä¿¡ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"> + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; // 手軽ãªã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ, マスターã¯ãƒ©ãƒ³ã‚¯0ã§ã™ + Master = ~ SLV; // ãã®ä»–ã¯å…¨ã¦ã‚¹ãƒ¬ãƒ¼ãƒ– + a=-1 + if Master + // aを宣言 + a=42 + end + b=MPI_Bcast(a, 0); + assert_checkequal(b,42); + MPI_Finalize(); + </programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/MPI_Init.xml b/modules/mpi/help/ja_JP/MPI_Init.xml new file mode 100755 index 000000000..a94b88855 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Init.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Init" xml:lang="ja"> + <refnamediv> + <refname>MPI_Init</refname> + <refpurpose>MPI環境をåˆæœŸåŒ–ã™ã‚‹</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>res = MPI_Init()</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>指定ã—ãŸãƒŽãƒ¼ãƒ‰ã«é€ä¿¡ã™ã‚‹å€¤.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>node</term> + <listitem> + <para>データをé€ä¿¡ã™ã‚‹ãƒŽãƒ¼ãƒ‰</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>処ç†çµæžœ (æˆåŠŸæ™‚ã«true,失敗ã—ãŸå ´åˆã« false)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 指定ã—ãŸãƒŽãƒ¼ãƒ‰ã«å¤‰æ•°ã‚’é€ä¿¡ã—ã¾ã™. + ãã®å€¤ã¯,関数<link linkend="MPI_Send">MPI_Send</link>ã«ã‚ˆã‚Š + ノードã§å–å¾—ã•ã‚Œã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example">//TODO</programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/MPI_Irecv.xml b/modules/mpi/help/ja_JP/MPI_Irecv.xml new file mode 100755 index 000000000..7f87bab35 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Irecv.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Irecv" xml:lang="ja"> + <refnamediv> + <refname>MPI_Irecv</refname> + <refpurpose>ノードã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’ノンブãƒãƒƒã‚ングå—ä¿¡ã™ã‚‹</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>MPI_Irecv(rank,tag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>rank</term> + <listitem> + <para>ランク. TODO</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tag</term> + <listitem> + <para>ã‚¿ã‚°. TODO</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + ノンブãƒãƒƒã‚ング(éžåŒæœŸ)æ–¹å¼ã§æŒ‡å®šã—ãŸãƒŽãƒ¼ãƒ‰ã‹ã‚‰å¤‰æ•°ã‚’å–å¾—ã—ã¾ã™. + ã“ã®å€¤ã¯,通常,<link linkend="MPI_Isend">MPI_Isend</link>関数ã‹ã‚‰ + é€ä¿¡ã•ã‚Œã¾ã™. + </para> + <para> + éžåŒæœŸã®ç‰¹æ€§ã®ãŸã‚, MPI_Irecv ã¯å€¤ã‚’è¿”ã•ã‚Œãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + ソースノードã«ã‚ˆã‚Šé€ä¿¡ã•ã‚ŒãŸå€¤ã¯, + <link linkend="MPI_Wait">MPI_Wait</link>ã«ã‚ˆã‚Šè¿”ã•ã‚Œã¾ã™. + </para> + </refsection> + <refsection> + <title>技術的実装</title> + <para> + Scilab/MPIã®å®Ÿè£…ã«é–¢ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯, + <link linkend="mpi_technical">実装ã«é–¢ã™ã‚‹æŠ€è¡“的詳細</link>ã‚’ + å‚ç…§ãã ã•ã„. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; + Master = ~ SLV; + assert_checkequal(MPI_Comm_size(), 2); + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv ã¯å€¤ã‚’è¿”ã—ã¾ã›ã‚“ + value=MPI_Wait(42) // 値ã¯MPI_Waitã§å–å¾—ã—ã¾ã™ + assert_checkequal(value,2); + end + MPI_Finalize(); + exit() + ]]> </programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Isend">MPI_Isend</link> + </member> + <member> + <link linkend="MPI_Wait">MPI_Wait</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/MPI_Isend.xml b/modules/mpi/help/ja_JP/MPI_Isend.xml new file mode 100755 index 000000000..c7434aa31 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Isend.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Isend" xml:lang="ja"> + <refnamediv> + <refname>MPI_Isend</refname> + <refpurpose> + ノード間ã®éžãƒ–ãƒãƒƒã‚ングデータé€ä¿¡ + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>res = MPI_Isend(value,node)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>特定ã®ãƒŽãƒ¼ãƒ‰ã«é€ä¿¡ã™ã‚‹å€¤.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>node</term> + <listitem> + <para>データをé€ä¿¡ã™ã‚‹ãƒŽãƒ¼ãƒ‰</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>処ç†çµæžœ (æˆåŠŸæ™‚ã«true,失敗ã—ãŸå ´åˆã¯false)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 特定ã®ãƒŽãƒ¼ãƒ‰ã«å¤‰æ•°ã‚’éžãƒ–ãƒãƒƒã‚¯(éžåŒæœŸ)モードã§é€ä¿¡ã—ã¾ã™. + ã“ã®å€¤ã¯ãƒŽãƒ¼ãƒ‰ã§é–¢æ•° + <link linkend="MPI_Irecv">MPI_Irecv</link>ã«ã‚ˆã‚Š + å–å¾—ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; + Master = ~ SLV; + assert_checkequal(MPI_Comm_size(), 2); + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv does not return any value + value=MPI_Wait(42) // the value will be returned by MPI_Wait + assert_checkequal(value,2); + end + MPI_Finalize(); + exit() + ]]> </programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Irecv">MPI_Irecv</link> + </member> + <member> + <link linkend="MPI_Wait">MPI_Wait</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/MPI_Recv.xml b/modules/mpi/help/ja_JP/MPI_Recv.xml new file mode 100755 index 000000000..add5ea9c7 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Recv.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Recv" xml:lang="ja"> + <refnamediv> + <refname>MPI_Recv</refname> + <refpurpose>ノードã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’å—ä¿¡ã™ã‚‹</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>value = MPI_Recv(rank,tag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>rank</term> + <listitem> + <para>ランク. TODO</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tag</term> + <listitem> + <para>ã‚¿ã‚°. TODO</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>MPI_Sendã‹ã‚‰å–å¾—ã—ãŸå€¤.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 指定ã—ãŸãƒŽãƒ¼ãƒ‰ã‹ã‚‰å€¤ã‚’å–å¾—ã—ã¾ã™. + ãã®å€¤ã¯,通常,関数 + <link linkend="MPI_Send">MPI_Send</link>ã‹ã‚‰é€ä¿¡ã•ã‚Œã¾ã™. + </para> + </refsection> + <refsection> + <title>技術的実装</title> + <para> + Scilab/MPIã®å®Ÿè£…ã«é–¢ã™ã‚‹è©³ç´°ã«ã¤ã„ã¦ã¯, + <link linkend="mpi_technical">実装ã«é–¢ã™ã‚‹æŠ€è¡“的詳細</link>ã‚’ + å‚ç…§ãã ã•ã„. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"> + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; // 便利ãªã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ, マスターã¯ãƒ©ãƒ³ã‚¯ 0 + Master = ~ SLV; // ãã®ä»–ã¯å…¨ã¦ã‚¹ãƒ¬ãƒ¼ãƒ– + tag=0; + if Master + // マスターノード + for slaveId = 1:sizeNodes-1 + // Send data to the slaves + value = rand(100,100) + rand(100,100) * %i; + MPI_Send(value, slaveId); + end + for slaveId = 1:sizeNodes-1 + valueBack=MPI_Recv(slaveId, tag); + // スレーブãŒæœŸå¾…ã™ã‚‹ã‚‚ã®ã‚’é€ä¿¡ã—ãŸã‹ç¢ºèª + assert_checkequal(valueBack,value + 1); + end + else + // スレーブ + rankSource=0; + // マスターã‹ã‚‰æƒ…å ±ã‚’å—ä¿¡ + value=MPI_Recv(rankSource); + // 値を1ã¤å¢—åŠ + value=value+1; + // マスターã«æˆ»ã™ + MPI_Send(value,0); + end + MPI_Finalize(); + </programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Send">MPI_Send</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/MPI_Send.xml b/modules/mpi/help/ja_JP/MPI_Send.xml new file mode 100755 index 000000000..e3904c8f6 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Send.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Send" xml:lang="ja"> + <refnamediv> + <refname>MPI_Send</refname> + <refpurpose>ノード間データé€ä¿¡</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>res = MPI_Send(value,node)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>value</term> + <listitem> + <para>特定ã®ãƒŽãƒ¼ãƒ‰ã«é€ä¿¡ã™ã‚‹å€¤.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>node</term> + <listitem> + <para>データをé€ä¿¡ã™ã‚‹ãƒŽãƒ¼ãƒ‰</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para>処ç†çµæžœ (æˆåŠŸæ™‚ã«true,失敗ã—ãŸå ´åˆã« false)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 変数を特定ã®ãƒŽãƒ¼ãƒ‰ã«é€ä¿¡ã—ã¾ã™. + ã“ã®å€¤ã¯,関数<link linkend="MPI_Recv">MPI_Recv</link>ã«ã‚ˆã‚Š + å–å¾—ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"> + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; // handy shortcuts, master is rank 0 + Master = ~ SLV; // slaves are all other + tag=0; + if Master + // The master node + for slaveId = 1:sizeNodes-1 + // Send data to the slaves + value = rand(100,100) + rand(100,100) * %i; + MPI_Send(value, slaveId); + end + for slaveId = 1:sizeNodes-1 + valueBack=MPI_Recv(slaveId, tag); + // Check that the slaves gaves us what we expected + assert_checkequal(valueBack,value + 1); + end + else + // The slaves + rankSource=0; + // Receive the information from the master + value=MPI_Recv(rankSource); + // Increment all the values by one + value=value+1; + // Send back to the master + MPI_Send(value,0); + end + MPI_Finalize(); + </programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/MPI_Wait.xml b/modules/mpi/help/ja_JP/MPI_Wait.xml new file mode 100755 index 000000000..191093ec1 --- /dev/null +++ b/modules/mpi/help/ja_JP/MPI_Wait.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="MPI_Wait" xml:lang="ja"> + <refnamediv> + <refname>MPI_Wait</refname> + <refpurpose>MPIリクエストã®å®Œäº†ã‚’待㤠</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>res = MPI_Wait(request)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>request</term> + <listitem> + <para>MPIリクエスト.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>res</term> + <listitem> + <para> + MPI_Isendã«ã‚ˆã‚Šé€ä¿¡ã•ã‚Œ, + MPI_Irecvã«ã‚ˆã‚Šå®£è¨€ã•ã‚ŒãŸMPIリクエストã«ä¸€è‡´ã™ã‚‹å¤‰æ•° + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para>TODO.</para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; + Master = ~ SLV; + assert_checkequal(MPI_Comm_size(), 2); + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv ã¯å€¤ã‚’è¿”ã—ã¾ã›ã‚“ + value=MPI_Wait(42) // 値ã¯MPI_Waitã«ã‚ˆã‚Šè¿”ã•ã‚Œã¾ã™ + assert_checkequal(value,2); + end + MPI_Finalize(); + exit() + ]]> </programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Irecv">MPI_Irecv</link> + </member> + <member> + <link linkend="MPI_Isend">MPI_Isend</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/addchapter.sce b/modules/mpi/help/ja_JP/addchapter.sce new file mode 100755 index 000000000..aa365cb40 --- /dev/null +++ b/modules/mpi/help/ja_JP/addchapter.sce @@ -0,0 +1,10 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +add_help_chapter("Scilab MPI",SCI+"/modules/mpi/help/ja_JP",%T); diff --git a/modules/mpi/help/ja_JP/mpi.xml b/modules/mpi/help/ja_JP/mpi.xml new file mode 100755 index 000000000..128caca38 --- /dev/null +++ b/modules/mpi/help/ja_JP/mpi.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<!-- This document was created with Syntext Serna Free. --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="mpi" xml:lang="ja"> + <refnamediv> + <refname>MPI</refname> + <refpurpose>Scilabã‹ã‚‰ã®MPI機能ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹</refpurpose> + </refnamediv> + <refsection> + <title>説明</title> + <para> + MPIインターフェイスãŒScilabã«æä¾›ã•ã‚Œã¦ã„ã¾ã™. + ã“ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã«ã‚ˆã‚Šé«˜æ€§èƒ½ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸æŒ‡å®š + 計算ãŒå¯èƒ½ã¨ãªã‚Šã¾ã™. + </para> + <para> + ä»–ã®MPIアプリケーションã¨åŒæ§˜ã«, Scilab/MPI 㯠+ <literal>mpirun</literal>コマンドã«ã‚ˆã‚Šé–‹å§‹ã•ã‚Œ,通常, + 開始ã™ã‚‹ãƒŽãƒ¼ãƒ‰æ•°ã‚’指定ã™ã‚‹å¼•æ•°<literal>-c</literal>ã‚’ + 指定ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>サãƒãƒ¼ãƒˆã•ã‚Œã‚‹ãƒ‡ãƒ¼ã‚¿åž‹</title> + <para> + Scilab MPI実装ã¯ä»¥ä¸‹ã® + (行列ã¾ãŸã¯ã‚¹ã‚«ãƒ©ãƒ¼å½¢å¼ã®)Scilabデータ型をサãƒãƒ¼ãƒˆã—ã¾ã™: + <simplelist type="inline"> + <member>Double</member><member>Boolean</member><member>int (å…¨ã¦)</member><member>String</member><member>Sparse</member><member>Boolean Sparse</member> + </simplelist> + ç¾æ™‚点ã§ã¯,list, tlistã¾ãŸã¯ mlistã®ã‚ˆã†ãªé«˜ä½ã® + ãƒ‡ãƒ¼ã‚¿åž‹æ§‹é€ ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“. + ã“れらをサãƒãƒ¼ãƒˆã™ã‚‹ãŸã‚ã«ã¯,ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã‚’æ–°è¦ã«æŠ•ç¨¿ã™ã‚‹ã®ãŒ + 良ã„ã§ã—ょã†. + </para> + </refsection> + <refsection> + <title>Scilab MPIã®ä¾‹</title> + <programlisting role="scilab"><![CDATA[ +// TODO. ä¾‹ã‚’è¿½åŠ (PI ?) +]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="MPI_Recv">MPI_Recv</link> + </member> + <member> + <link linkend="mpi_technical">実装ã«é–¢ã™ã‚‹æŠ€è¡“的詳細</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/ja_JP/mpi_technical.xml b/modules/mpi/help/ja_JP/mpi_technical.xml new file mode 100755 index 000000000..7ada96993 --- /dev/null +++ b/modules/mpi/help/ja_JP/mpi_technical.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011 - DIGITEO - Sylvestre Ledru + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<!-- This document was created with Syntext Serna Free. --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:id="mpi_technical" xml:lang="ja"> + <refnamediv> + <refname>MPI implementation</refname> + <refpurpose>実装ã«é–¢ã™ã‚‹æŠ€è¡“的詳細</refpurpose> + </refnamediv> + <refsection> + <title>データã®é€ä¿¡ãŠã‚ˆã³å—ä¿¡</title> + <para> + スクリプト言語ã«ã‚ˆã‚‹MPI実装ã®ä¸»ãªå•é¡Œã¯,ãƒãƒ¼ãƒ†ã‚£ãƒ–ãªç‰¹å¾´ã«èµ·å› ã—ã¾ã™. + ã¤ã¾ã‚Š,スクリプト言語ã¯,ã‚‚ã¨ã‚‚ã¨, + 種々ã®<literal>åž‹</literal>ãŠã‚ˆã³å¤§ãã•ã®å‹•çš„ãªå¤‰æ•°ã‚’用ã„ã¦ã„ã‚‹ã®ã§ã™. + </para> + <para> + Scilabã«ãŠã‘ã‚‹MPIã®å®Ÿè£…ã¯MPIデータ型MPI_INTã¸ã®å†…部的ãªã‚·ãƒªã‚¢ãƒ«åŒ–ãŠã‚ˆã³ + éžã‚·ãƒªã‚¢ãƒ«åŒ–処ç†ã‚’用ã„ã¦ã„ã¾ã™. + é€ä¿¡é–¢æ•°(MPI_Send, MPI_Isend, MPI_BCast, ãªã©)㯠+ å…¨ã¦ã®ã‚µãƒãƒ¼ãƒˆã•ã‚Œã‚‹ãƒ‡ãƒ¼ã‚¿åž‹ã‚’ MPI_INTã«å¤‰æ›ã—,一方, + å—信関数(MPI_Recv, MPI_Irecv, ãªã©) ã¯å…ƒã®å¤‰æ•°ã‚’ + <literal>回復</literal> ã—ã¾ã™. + </para> + <para> + 5系列ã«ãŠã‘るメモリ表ç¾ã¨åŒæ§˜ã«,変数ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ã‚·ãƒªã‚¢ãƒ«åŒ–ã•ã‚Œã¾ã™: + </para> + <para> + Double, Boolean, æ–‡å—列(?) + <informaltable border="1"> + <tr> + <td> + <para>åž‹</para> + </td> + <td> + <para>行数</para> + </td> + <td> + <para>列数</para> + </td> + <td> + <para>è¤‡ç´ æ•° (関係ã™ã‚‹å ´åˆ)</para> + </td> + <td> + <para>データ</para> + </td> + </tr> + </informaltable> + </para> + <para>æ•´æ•° + <informaltable border="1"> + <tr> + <td> + <para>åž‹</para> + </td> + <td> + <para>行数</para> + </td> + <td> + <para>列数</para> + </td> + <td> + <para>精度</para> + </td> + <td> + <para>データ</para> + </td> + </tr> + </informaltable> + <para> + </para> + 疎行列 (double ã¾ãŸã¯ boolean) + <informaltable border="1"> + <tr> + <td> + <para>åž‹</para> + </td> + <td> + <para>行数</para> + </td> + <td> + <para>列数</para> + </td> + <td> + <para>è¤‡ç´ æ•°</para> + </td> + <td> + <para>è¦ç´ æ•°</para> + </td> + <td> + <para>データ</para> + </td> + </tr> + </informaltable> + </para> + <para> + ä»–ã®è§£ã‚’検討ã—ã¾ã—ãŸãŒ,種々ã®ç†ç”±ã«ã‚ˆã‚Šæ£„å´ã•ã‚Œã¾ã—ãŸ: + <simplelist type="inline"> + <member> + <literal>MPIã«åŸºã¥ãæ–°è¦ãƒ‡ãƒ¼ã‚¿åž‹</literal> 㯠+ <literal>事å‰ã«</literal>変数ã®å¤§ãã•ã‚’知る必è¦ãŒã‚ã‚Šã¾ã™. + </member> + <member> + <literal> + メタデータ(大ãã•, åž‹)ãŒé€ä¿¡ã•ã‚ŒãŸã‚Š, + データãŒé€ä¿¡ã•ã‚ŒãŸã‚Šã—ã¾ã™. + </literal> + 性能ã¯ä½Žä¸‹ã—,コードã¯ã‹ãªã‚Šè¤‡é›‘化ã—ã¾ã™. + </member> + </simplelist> + </para> + </refsection> + <refsection> + <title>éžåŒæœŸé€šä¿¡</title> + <para> + MPI_Irecv ã¨MPI_Isendã®æ¨™æº–çš„ãªå‹•ä½œã¯Scilab言語ã§å…±é€šã™ã‚‹æ–¹æ³•ã¨ã¯å®Ÿéš›ã«ã¯ + ç•°ãªã‚Šã€MPI_WairãŒScilab MPIãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã«å€¤ã‚’è¿”ã—ã¾ã™. + </para> + <para> + リクエストã®ãƒªã‚¹ãƒˆã¨MPI_Irecv/MPI_Waitã§æƒ³å®šã•ã‚Œã‚‹MPI変数をä¿å˜ã™ã‚‹ãŸã‚ã«, + 最大 10 000 è¦ç´ を有ã™ã‚‹é™çš„Cæ§‹é€ ä½“ãŒä½¿ç”¨ã•ã‚Œã¾ã™. + ã“れらã¯,éžåŒæœŸé€šä¿¡ã§ä½¿ç”¨ã•ã‚Œã‚‹ç¨®ã€…ã®MPIリクエスト㨠+ MPI_Irecvã‹ã‚‰æœŸå¾…ã•ã‚Œã‚‹å¤‰æ•°ã¸ã®ãƒªãƒ•ã‚¡ãƒ¬ãƒ³ã‚¹ã‚’ä¿å˜ã™ã‚‹éš›ã«ä½¿ç”¨ã•ã‚Œã¾ã™. + å—ä¿¡ã•ã‚ŒãŸå€¤ã¯MPI_Waitã«ã‚ˆã‚Šå–å¾—ã•ã‚Œã¾ã™. + </para> + <para>以下ã®ä¾‹ã§ã¯, "42"ã¨ã„ã†åå‰ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒã“ã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ 体ã«ä¿å˜ã•ã‚Œã¾ã™. + <programlisting role="example"><![CDATA[ + MPI_Init(); + rnk = MPI_Comm_rank(); + sizeNodes = MPI_Comm_size(); + SLV = rnk; + Master = ~ SLV; + assert_checkequal(MPI_Comm_size(), 2); + if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end + else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); // MPI_Irecv ã¯å€¤ã‚’è¿”ã—ã¾ã›ã‚“ + value=MPI_Wait(42) // 値㯠MPI_Waitã«ã‚ˆã‚Šè¿”ã•ã‚Œã¾ã™ + assert_checkequal(value,2); + end + MPI_Finalize(); + exit() + ]]> </programlisting> + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="mpi">MPIã®æ¦‚è¦</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/mpi/help/pt_BR/addchapter.sce b/modules/mpi/help/pt_BR/addchapter.sce new file mode 100755 index 000000000..0f2ac4e70 --- /dev/null +++ b/modules/mpi/help/pt_BR/addchapter.sce @@ -0,0 +1,10 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +add_help_chapter("Scilab MPI",SCI+"/modules/mpi/help/pt_BR",%T); diff --git a/modules/mpi/help/ru_RU/addchapter.sce b/modules/mpi/help/ru_RU/addchapter.sce new file mode 100755 index 000000000..0be4b34ff --- /dev/null +++ b/modules/mpi/help/ru_RU/addchapter.sce @@ -0,0 +1,10 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +add_help_chapter("Scilab MPI",SCI+"/modules/mpi/help/ru_RU",%T); diff --git a/modules/mpi/includes/dynlib_mpi.h b/modules/mpi/includes/dynlib_mpi.h new file mode 100755 index 000000000..af0bbcad6 --- /dev/null +++ b/modules/mpi/includes/dynlib_mpi.h @@ -0,0 +1,28 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) Scilab Enterprises - 2013 - Antoine ELIAS +* +* This file must be used under the terms of the CeCILL. +* This source file is licensed as described in the file COPYING, which +* you should have received as part of this distribution. The terms +* are also available at +* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +* +*/ + +/*--------------------------------------------------------------------------*/ +#ifndef __DYNLIB_MPI_H__ +#define __DYNLIB_MPI_H__ + +#ifdef _MSC_VER +#ifdef MPI_EXPORTS +#define MPI_IMPEXP __declspec(dllexport) +#else +#define MPI_IMPEXP __declspec(dllimport) +#endif +#else +#define MPI_IMPEXP +#endif + +#endif /* __DYNLIB_MPI_H__ */ +/*--------------------------------------------------------------------------*/ diff --git a/modules/mpi/includes/gw_mpi.h b/modules/mpi/includes/gw_mpi.h new file mode 100755 index 000000000..1f14be7fc --- /dev/null +++ b/modules/mpi/includes/gw_mpi.h @@ -0,0 +1,35 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#ifndef __GW_MPI__ +#define __GW_MPI__ + +#include "dynlib_mpi.h" + +MPI_IMPEXP int gw_mpi(void); + +typedef int (*MPI_Interf) (char *fname, unsigned long l); +/*--------------------------------------------------------------------------*/ +/* interface for the previous function Table */ +/*--------------------------------------------------------------------------*/ +int sci_mpi_init(char *fname, unsigned long fname_len); +int sci_mpi_finalize(char *fname, unsigned long fname_len); +int sci_mpi_comm_size(char *fname, unsigned long fname_len); +int sci_mpi_comm_rank(char *fname, unsigned long fname_len); +int sci_mpi_recv(char *fname, unsigned long fname_len); +int sci_mpi_send(char *fname, unsigned long fname_len); +int sci_mpi_get_processor_name(char *fname, unsigned long fname_len); +int sci_mpi_bcast(char *fname, unsigned long fname_len); +int sci_mpi_irecv(char *fname, unsigned long fname_len); +int sci_mpi_isend(char *fname, unsigned long fname_len); +int sci_mpi_wait(char *fname, unsigned long fname_len); +#endif /* __GW_MPI__ */ diff --git a/modules/mpi/locales/fr_FR.po b/modules/mpi/locales/fr_FR.po new file mode 100755 index 000000000..5379165e7 --- /dev/null +++ b/modules/mpi/locales/fr_FR.po @@ -0,0 +1,97 @@ +# French translation for scilab +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-27 09:49+0000\n" +"Last-Translator: Julie PAUL <Unknown>\n" +"Language-Team: French <fr@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s : Impossible de lire l'argument d'entrée n°%d.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar integer value expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une valeur entière scalaire " +"attendue.\n" + +#, c-format +msgid "%s: Could not get communicator rank of the node %d: %s\n" +msgstr "%s : Impossible d'obtenir le communicator rank du noeud %d : %s.\n" + +msgid "Unable to serialize data\n" +msgstr "Impossible de sérialiser les données\n" + +#, c-format +msgid "%s: Could not broadcast the variable to the node %d: %s\n" +msgstr "%s : Impossible de diffuser la variable sur le nÅ“ud %d : %s\n" + +#, c-format +msgid "%s: Unable to deserialize data.\n" +msgstr "%s : Impossible de désérialiser les données.\n" + +#, c-format +msgid "%s: Unable to create variable.\n" +msgstr "%s : Impossible de créer la variable.\n" + +#, c-format +msgid "%s: Memory allocation error.\n" +msgstr "%s : Erreur d'allocation mémoire.\n" + +#, c-format +msgid "%s: Could not finalize the MPI instance: %s\n" +msgstr "%s : Impossible de finaliser l'instance MPI : %s\n" + +#, c-format +msgid "%s: Could not get processor name: %s\n" +msgstr "%s : Impossible d'obtenir le nom du processeur : %s\n" + +#, c-format +msgid "%s: Wrong values for input argument #%d: Positive value expected.\n" +msgstr "" +"%s : Valeurs erronées de l'argument d'entrée n°%d : Une valeur positive " +"attendue.\n" + +#, c-format +msgid "%s: MPI_Probe failed. Rank %d / Tag %d: %s\n" +msgstr "%s : MPI_Probe a échoué. Rank %d / Tag %d : %s\n" + +#, c-format +msgid "%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n" +msgstr "%s : MPI_Get_count a échoué. Rank %d / Tag %d : %s\n" + +#, c-format +msgid "%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n" +msgstr "%s : MPI_Irecv a échoué. Rank %d / Tag %d : %s\n" + +#, c-format +msgid "%s: Could not send the variable to the node %d: %s\n" +msgstr "%s : Impossible d'envoyer la variable sur le noeud %d : %s\n" + +#, c-format +msgid "%s: Could not create the received variable.\n" +msgstr "%s : Impossible de créer la variable reçue.\n" + +#, c-format +msgid "%s: MPI_Recv failed. Rank %d / Tag %d: %s\n" +msgstr "%s : MPI_Recv a échoué. Rank %d / Tag %d : %s\n" + +#, c-format +msgid "%s: Unable to deserialize data !\n" +msgstr "%s : Impossible de désérialiser les données.\n" + +#, c-format +msgid "%s: MPI_Wait failed while waiting %d: %s\n" +msgstr "%s : Échec de MPI_wait en attendant %d : %s.\n" diff --git a/modules/mpi/locales/it_IT.po b/modules/mpi/locales/it_IT.po new file mode 100755 index 000000000..dda2ba13d --- /dev/null +++ b/modules/mpi/locales/it_IT.po @@ -0,0 +1,98 @@ +# Italian translation for scilab +# Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2015-02-15 21:10+0000\n" +"Last-Translator: Carml <mighty.carml@gmail.com>\n" +"Language-Team: Italian <it@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: Impossibile leggere l'argomento in ingresso #%d.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar integer value expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un valore " +"scalare intero.\n" + +#, c-format +msgid "%s: Could not get communicator rank of the node %d: %s\n" +msgstr "" +"%s: Impossibile ottenere il rango del comunicatore del nodo %d: %s.\n" + +msgid "Unable to serialize data\n" +msgstr "Impossibile serializzare i dati.\n" + +#, c-format +msgid "%s: Could not broadcast the variable to the node %d: %s\n" +msgstr "%s: Impossibile trasmettere la variabile al nodo %d: %s.\n" + +#, c-format +msgid "%s: Unable to deserialize data.\n" +msgstr "%s: Impossibile deserializzare i dati.\n" + +#, c-format +msgid "%s: Unable to create variable.\n" +msgstr "%s: Impossibile creare la variabile.\n" + +#, c-format +msgid "%s: Memory allocation error.\n" +msgstr "%s: Errore di allocazione della memoria.\n" + +#, c-format +msgid "%s: Could not finalize the MPI instance: %s\n" +msgstr "%s: Impossibile finalizzare la seg. istanza di MPI: %s.\n" + +#, c-format +msgid "%s: Could not get processor name: %s\n" +msgstr "%s: Impossibile ottenere il nome del processore: %s.\n" + +#, c-format +msgid "%s: Wrong values for input argument #%d: Positive value expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha dei valori sbagliati: era atteso un " +"valore positivo.\n" + +#, c-format +msgid "%s: MPI_Probe failed. Rank %d / Tag %d: %s\n" +msgstr "%s: Fallito MPI_Probe. Rango %d / Etichetta %d: %s\n" + +#, c-format +msgid "%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n" +msgstr "%s: Fallito MPI_Get_count. Rango %d / Etichetta %d: %s\n" + +#, c-format +msgid "%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: Fallito MPI_Irecv. Rango %d / Etichetta %d: %s\n" + +#, c-format +msgid "%s: Could not send the variable to the node %d: %s\n" +msgstr "%s: Impossibile inviare la variabile al nodo %d: %s.\n" + +#, c-format +msgid "%s: Could not create the received variable.\n" +msgstr "%s: Impossibile creare la variabile ricevuta.\n" + +#, c-format +msgid "%s: MPI_Recv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: Fallito MPI_Recv. Rango %d / Etichetta %d: %s\n" + +#, c-format +msgid "%s: Unable to deserialize data !\n" +msgstr "%s: Impossibile deserializzare i dati !\n" + +#, c-format +msgid "%s: MPI_Wait failed while waiting %d: %s\n" +msgstr "%s: Fallito MPI_Wait attendendo %d: %s\n" diff --git a/modules/mpi/locales/ja_JP.po b/modules/mpi/locales/ja_JP.po new file mode 100755 index 000000000..e82563916 --- /dev/null +++ b/modules/mpi/locales/ja_JP.po @@ -0,0 +1,93 @@ +# Japanese translation for scilab +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-10-02 14:18+0000\n" +"Last-Translator: Rui Hirokawa <Unknown>\n" +"Language-Team: Japanese <ja@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã‚’èªã¿è¾¼ã‚ã¾ã›ã‚“.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar integer value expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: スカラー整数値を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Could not get communicator rank of the node %d: %s\n" +msgstr "%s: ノード %d ã®ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚¿ãƒ¼ãƒ©ãƒ³ã‚¯ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s\n" + +msgid "Unable to serialize data\n" +msgstr "データをシリアル化ã§ãã¾ã›ã‚“ã§ã—ãŸ\n" + +#, c-format +msgid "%s: Could not broadcast the variable to the node %d: %s\n" +msgstr "%s: 変数をノード %d ã«ãƒ–ãƒãƒ¼ãƒ‰ã‚ャストã§ãã¾ã›ã‚“ã§ã—ãŸ: %s\n" + +#, c-format +msgid "%s: Unable to deserialize data.\n" +msgstr "%s: データをデシリアライズã§ãã¾ã›ã‚“ã§ã—ãŸ.\n" + +#, c-format +msgid "%s: Unable to create variable.\n" +msgstr "%s: 変数を作æˆã§ãã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Memory allocation error.\n" +msgstr "%s: メモリ確ä¿ã‚¨ãƒ©ãƒ¼.\n" + +#, c-format +msgid "%s: Could not finalize the MPI instance: %s\n" +msgstr "%s: MPIインスタンスをファイナライズã§ãã¾ã›ã‚“ã§ã—ãŸ: %s\n" + +#, c-format +msgid "%s: Could not get processor name: %s\n" +msgstr "%s: プãƒã‚»ãƒƒã‚µåã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s\n" + +#, c-format +msgid "%s: Wrong values for input argument #%d: Positive value expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: æ£ã®å€¤ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: MPI_Probe failed. Rank %d / Tag %d: %s\n" +msgstr "%s: MPI_Probe ãŒå¤±æ•—ã—ã¾ã—ãŸ. ランク %d / ã‚¿ã‚° %d: %s\n" + +#, c-format +msgid "%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n" +msgstr "%s: MPI_Get_count ãŒå¤±æ•—ã—ã¾ã—ãŸ. ランク %d / ã‚¿ã‚° %d: %s\n" + +#, c-format +msgid "%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: MPI_irecv ãŒå¤±æ•—ã—ã¾ã—ãŸ. ランク %d / ã‚¿ã‚° %d: %s\n" + +#, c-format +msgid "%s: Could not send the variable to the node %d: %s\n" +msgstr "%s: 変数をノード %d ã«é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s\n" + +#, c-format +msgid "%s: Could not create the received variable.\n" +msgstr "%s: å—ä¿¡ã—ãŸå¤‰æ•°ã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ.\n" + +#, c-format +msgid "%s: MPI_Recv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: MPI_Recv ãŒå¤±æ•—ã—ã¾ã—ãŸ. ランク %d / ã‚¿ã‚° %d: %s\n" + +#, c-format +msgid "%s: Unable to deserialize data !\n" +msgstr "%s: データをデシリアライズã§ãã¾ã›ã‚“ã§ã—ãŸ!\n" + +#, c-format +msgid "%s: MPI_Wait failed while waiting %d: %s\n" +msgstr "%s: %d ã‚’å¾…ã¤é–“ã« MPI_Wait ãŒå¤±æ•—ã—ã¾ã—ãŸ: %s\n" diff --git a/modules/mpi/locales/mpi.pot b/modules/mpi/locales/mpi.pot new file mode 100755 index 000000000..c9bbf1a35 --- /dev/null +++ b/modules/mpi/locales/mpi.pot @@ -0,0 +1,166 @@ +# Localization of the module mpi +# Please see in SCI/tools/localization for localization management +# Copyright (C) 2007-2008 - INRIA +# Copyright (C) 2008-2011 - DIGITEO +# Copyright (C) 2012-2014 - Scilab-Enterprises +# This file is distributed under the same license as the Scilab package. +# +msgid "" +msgstr "" +"Project-Id-Version: Scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"Last-Translator: Vincent COUVERT <vincent.couvert@scilab-enterprises.com>\n" +"Language-Team: Scilab Localization <localization@lists.scilab.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Revision-Date: 2015-03-27 13:54+0100\n" + +# File: sci_gateway/c/sci_mpi_bcast.c, line: 42 +# File: sci_gateway/c/sci_mpi_bcast.c, line: 56 +# File: sci_gateway/c/sci_mpi_comm_size.c, line: 41 +# File: sci_gateway/c/sci_mpi_irecv.c, line: 46 +# File: sci_gateway/c/sci_mpi_irecv.c, line: 61 +# File: sci_gateway/c/sci_mpi_irecv.c, line: 77 +# File: sci_gateway/c/sci_mpi_isend.c, line: 46 +# File: sci_gateway/c/sci_mpi_isend.c, line: 60 +# File: sci_gateway/c/sci_mpi_isend.c, line: 81 +# File: sci_gateway/c/sci_mpi_recv.c, line: 42 +# File: sci_gateway/c/sci_mpi_recv.c, line: 57 +# File: sci_gateway/c/sci_mpi_send.c, line: 41 +# File: sci_gateway/c/sci_mpi_send.c, line: 55 +# File: sci_gateway/c/sci_mpi_wait.c, line: 41 +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_bcast.c, line: 48 +# File: sci_gateway/c/sci_mpi_comm_size.c, line: 47 +# File: sci_gateway/c/sci_mpi_irecv.c, line: 52 +# File: sci_gateway/c/sci_mpi_irecv.c, line: 67 +# File: sci_gateway/c/sci_mpi_irecv.c, line: 83 +# File: sci_gateway/c/sci_mpi_isend.c, line: 52 +# File: sci_gateway/c/sci_mpi_isend.c, line: 66 +# File: sci_gateway/c/sci_mpi_recv.c, line: 48 +# File: sci_gateway/c/sci_mpi_recv.c, line: 63 +# File: sci_gateway/c/sci_mpi_send.c, line: 47 +# File: sci_gateway/c/sci_mpi_wait.c, line: 47 +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar integer value expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_bcast.c, line: 66 +#, c-format +msgid "%s: Could not get communicator rank of the node %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_bcast.c, line: 75 +# File: sci_gateway/c/sci_mpi_isend.c, line: 89 +# File: sci_gateway/c/sci_mpi_send.c, line: 63 +msgid "Unable to serialize data\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_bcast.c, line: 87 +# File: sci_gateway/c/sci_mpi_bcast.c, line: 103 +#, c-format +msgid "%s: Could not broadcast the variable to the node %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_bcast.c, line: 111 +# File: sci_gateway/c/sci_mpi_wait.c, line: 86 +#, c-format +msgid "%s: Unable to deserialize data.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_comm_rank.c, line: 33 +#, c-format +msgid "%s: Unable to create variable.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_comm_size.c, line: 57 +# File: sci_gateway/c/sci_mpi_get_processor_name.c, line: 44 +# File: sci_gateway/c/sci_mpi_isend.c, line: 105 +# File: sci_gateway/c/sci_mpi_send.c, line: 81 +#, c-format +msgid "%s: Memory allocation error.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_finalize.c, line: 40 +#, c-format +msgid "%s: Could not finalize the MPI instance: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_get_processor_name.c, line: 38 +#, c-format +msgid "%s: Could not get processor name: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_irecv.c, line: 90 +# File: sci_gateway/c/sci_mpi_isend.c, line: 73 +# File: sci_gateway/c/sci_mpi_wait.c, line: 55 +#, c-format +msgid "%s: Wrong values for input argument #%d: Positive value expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_irecv.c, line: 100 +# File: sci_gateway/c/sci_mpi_recv.c, line: 74 +#, c-format +msgid "%s: MPI_Probe failed. Rank %d / Tag %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_irecv.c, line: 110 +# File: sci_gateway/c/sci_mpi_recv.c, line: 85 +#, c-format +msgid "%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_irecv.c, line: 127 +#, c-format +msgid "%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_isend.c, line: 99 +# File: sci_gateway/c/sci_mpi_send.c, line: 75 +#, c-format +msgid "%s: Could not send the variable to the node %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_recv.c, line: 93 +#, c-format +msgid "%s: Could not create the received variable.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_recv.c, line: 104 +#, c-format +msgid "%s: MPI_Recv failed. Rank %d / Tag %d: %s\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_recv.c, line: 113 +#, c-format +msgid "%s: Unable to deserialize data !\n" +msgstr "" + +# +# File: sci_gateway/c/sci_mpi_wait.c, line: 66 +#, c-format +msgid "%s: MPI_Wait failed while waiting %d: %s\n" +msgstr "" diff --git a/modules/mpi/locales/ru_RU.po b/modules/mpi/locales/ru_RU.po new file mode 100755 index 000000000..b2768dba7 --- /dev/null +++ b/modules/mpi/locales/ru_RU.po @@ -0,0 +1,96 @@ +# Russian translation for scilab +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-17 15:48+0000\n" +"Last-Translator: Stanislav V. Kroter <krotersv@gmail.com>\n" +"Language-Team: Russian <ru@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: Ðе могу прочитать входной аргумент â„–%d.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar integer value expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалÑÑ Ñ†ÐµÐ»Ð¾Ñ‡Ð¸Ñленный ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Could not get communicator rank of the node %d: %s\n" +msgstr "" + +msgid "Unable to serialize data\n" +msgstr "Ðевозможно преобразовать данные в поÑледовательную форму\n" + +#, c-format +msgid "%s: Could not broadcast the variable to the node %d: %s\n" +msgstr "" + +#, c-format +msgid "%s: Unable to deserialize data.\n" +msgstr "" + +#, c-format +msgid "%s: Unable to create variable.\n" +msgstr "%s: Ðевозможно Ñоздать переменную.\n" + +#, c-format +msgid "%s: Memory allocation error.\n" +msgstr "%s: Ошибка раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼Ñти.\n" + +#, c-format +msgid "%s: Could not finalize the MPI instance: %s\n" +msgstr "" + +#, c-format +msgid "%s: Could not get processor name: %s\n" +msgstr "%s: Ðе удалоÑÑŒ получить Ð¸Ð¼Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑора: %s\n" + +#, c-format +msgid "%s: Wrong values for input argument #%d: Positive value expected.\n" +msgstr "" +"%s: Ðеверные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ аргумента â„–%d: ожидалоÑÑŒ положительное " +"значение.\n" + +#, c-format +msgid "%s: MPI_Probe failed. Rank %d / Tag %d: %s\n" +msgstr "" + +#, c-format +msgid "%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n" +msgstr "" + +#, c-format +msgid "%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n" +msgstr "" + +#, c-format +msgid "%s: Could not send the variable to the node %d: %s\n" +msgstr "%s: Ðе удалоÑÑŒ переÑлать переменную на узел %d: %s\n" + +#, c-format +msgid "%s: Could not create the received variable.\n" +msgstr "%s: Ðе удалоÑÑŒ Ñоздать принÑтую переменную.\n" + +#, c-format +msgid "%s: MPI_Recv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: MPI_Recv провален. Rank %d / Tag %d: %s\n" + +#, c-format +msgid "%s: Unable to deserialize data !\n" +msgstr "%s: Ðевозможно преобразовать данные в параллельную форму!\n" + +#, c-format +msgid "%s: MPI_Wait failed while waiting %d: %s\n" +msgstr "" diff --git a/modules/mpi/locales/uk_UA.po b/modules/mpi/locales/uk_UA.po new file mode 100755 index 000000000..794f2285f --- /dev/null +++ b/modules/mpi/locales/uk_UA.po @@ -0,0 +1,96 @@ +# Ukrainian translation for scilab +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-10-01 10:20+0000\n" +"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n" +"Language-Team: Ukrainian <uk@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вхідний параметр â„–%d.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar integer value expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати ÑкалÑрний " +"цілий тип.\n" + +#, c-format +msgid "%s: Could not get communicator rank of the node %d: %s\n" +msgstr "%s: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ранг перемикача Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ð° %d: %s\n" + +msgid "Unable to serialize data\n" +msgstr "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані у поÑлідовну форму\n" + +#, c-format +msgid "%s: Could not broadcast the variable to the node %d: %s\n" +msgstr "%s: не вдалоÑÑ Ñ‚Ñ€Ð°Ð½Ñлювати змінну до вузла %d: %s\n" + +#, c-format +msgid "%s: Unable to deserialize data.\n" +msgstr "%s: не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· поÑлідовноÑÑ‚Ñ– даних.\n" + +#, c-format +msgid "%s: Unable to create variable.\n" +msgstr "%s: не вдалоÑÑ Ñтворити змінну.\n" + +#, c-format +msgid "%s: Memory allocation error.\n" +msgstr "%s: помилка під Ñ‡Ð°Ñ Ñпроби Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ–.\n" + +#, c-format +msgid "%s: Could not finalize the MPI instance: %s\n" +msgstr "%s: не вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ роботу екземплÑра MPI: %s\n" + +#, c-format +msgid "%s: Could not get processor name: %s\n" +msgstr "%s: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ назву процеÑора: %s\n" + +#, c-format +msgid "%s: Wrong values for input argument #%d: Positive value expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ð»Ð¾ бути додатним.\n" + +#, c-format +msgid "%s: MPI_Probe failed. Rank %d / Tag %d: %s\n" +msgstr "%s: помилка MPI_Probe. Ранг %d / Теґ %d: %s\n" + +#, c-format +msgid "%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n" +msgstr "%s: помилка MPI_Get_count. Ранг %d / Теґ %d: %s\n" + +#, c-format +msgid "%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: помилка MPI_Irecv. Ранг %d / Теґ %d: %s\n" + +#, c-format +msgid "%s: Could not send the variable to the node %d: %s\n" +msgstr "%s: не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати змінну до вузла %d: %s\n" + +#, c-format +msgid "%s: Could not create the received variable.\n" +msgstr "%s: не вдалоÑÑ Ñтворити отриману змінну.\n" + +#, c-format +msgid "%s: MPI_Recv failed. Rank %d / Tag %d: %s\n" +msgstr "%s: помилка MPI_Recv. Ранг %d / Теґ %d: %s\n" + +#, c-format +msgid "%s: Unable to deserialize data !\n" +msgstr "%s: не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ дані з поÑлідовної форми у паралельну!\n" + +#, c-format +msgid "%s: MPI_Wait failed while waiting %d: %s\n" +msgstr "%s: помилка MPI_Wait під Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ %d: %s\n" diff --git a/modules/mpi/macros/buildmacros.bat b/modules/mpi/macros/buildmacros.bat new file mode 100755 index 000000000..c4e35ec40 --- /dev/null +++ b/modules/mpi/macros/buildmacros.bat @@ -0,0 +1 @@ +@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit;
\ No newline at end of file diff --git a/modules/mpi/macros/buildmacros.sce b/modules/mpi/macros/buildmacros.sce new file mode 100755 index 000000000..73252b1d8 --- /dev/null +++ b/modules/mpi/macros/buildmacros.sce @@ -0,0 +1,14 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +//if ~isdef("genlib") then +// exec(SCI + "/modules/functions/scripts/buildmacros/loadgenlib.sce"); +//end + +//genlib("mpilib", "SCI/modules/mpi/macros", %f, %t); diff --git a/modules/mpi/macros/cleanmacros.bat b/modules/mpi/macros/cleanmacros.bat new file mode 100755 index 000000000..5079dfd71 --- /dev/null +++ b/modules/mpi/macros/cleanmacros.bat @@ -0,0 +1,3 @@ +@del *.bin 2>NUL +@del lib 2>NUL +@del names 2>NUL
\ No newline at end of file diff --git a/modules/mpi/mpi.iss b/modules/mpi/mpi.iss new file mode 100755 index 000000000..de02a1635 --- /dev/null +++ b/modules/mpi/mpi.iss @@ -0,0 +1,38 @@ +; +; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +; Copyright (C) Scilab Enterprises - Antoine ELIAS +; +; This file must be used under the terms of the CeCILL. +; This source file is licensed as described in the file COPYING, which +; you should have received as part of this distribution. The terms +; are also available at +; http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +; +;-------------------------------------------------------------------------------------------------------------- +; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required) +; +;-------------------------------------------------------------------------------------------------------------- +; MPI module +;-------------------------------------------------------------------------------------------------------------- +; +#define MPILIB "mpi" +; +Source: bin\{#MPILIB}.dll; DestDir: {app}\bin; Components: {#COMPN_MPI} +Source: bin\{#MPILIB}.lib; DestDir: {app}\bin; Components: {#COMPN_MPI} +; +Source: modules\{#MPILIB}\etc\{#MPILIB}.quit; DestDir: {app}\modules\{#MPILIB}\etc; Components: {#COMPN_MPI} +Source: modules\{#MPILIB}\etc\{#MPILIB}.start; DestDir: {app}\modules\{#MPILIB}\etc; Components: {#COMPN_MPI} +; +Source: modules\{#MPILIB}\includes\*.h; DestDir: {app}\modules\{#MPILIB}\includes; Components: {#COMPN_MPI} +; +Source: modules\{#MPILIB}\sci_gateway\{#MPILIB}_gateway.xml; DestDir: {app}\modules\{#MPILIB}\sci_gateway; Components: {#COMPN_MPI} +; +Source: modules\{#MPILIB}\macros\buildmacros.sce; DestDir: {app}\modules\{#MPILIB}\macros; Components: {#COMPN_MPI} +Source: modules\{#MPILIB}\macros\buildmacros.bat; DestDir: {app}\modules\{#MPILIB}\macros; Components: {#COMPN_MPI} +Source: modules\{#MPILIB}\macros\cleanmacros.bat; DestDir: {app}\modules\{#MPILIB}\macros; Components: {#COMPN_MPI} +; +Source: modules\{#MPILIB}\examples\*.*; DestDir: {app}\modules\{#MPILIB}\examples; Flags: recursesubdirs; Components: {#COMPN_MPI} +; +Source: modules\{#MPILIB}\tests\*.*; DestDir: {app}\modules\{#MPILIB}\tests; Flags: recursesubdirs; Components: {#COMPN_MPI} and {#COMPN_TESTS} +; +;-------------------------------------------------------------------------------------------------------------- diff --git a/modules/mpi/mpi.vcxproj b/modules/mpi/mpi.vcxproj new file mode 100755 index 000000000..dc4fae33a --- /dev/null +++ b/modules/mpi/mpi.vcxproj @@ -0,0 +1,231 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{5E726409-247A-464A-A994-6E6A7A02A981}</ProjectGuid> + <RootNamespace>time</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories> + <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + </PreLinkEvent> + <Link> + <AdditionalDependencies> + </AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories> + <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <Link> + <AdditionalDependencies> + </AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories> + <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies> + </AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories> + <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <Link> + <AdditionalDependencies> + </AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile> + </ModuleDefinitionFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="includes\dynlib_mpi.h" /> + <ClInclude Include="includes\gw_mpi.h" /> + <ClInclude Include="src\c\deserialization.h" /> + <ClInclude Include="src\c\sci_mpi.h" /> + <ClInclude Include="src\c\serialization.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="sci_gateway\c\gw_mpi.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_bcast.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_comm_rank.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_comm_size.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_finalize.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_get_processor_name.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_init.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_irecv.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_isend.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_recv.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_send.c" /> + <ClCompile Include="sci_gateway\c\sci_mpi_wait.c" /> + <ClCompile Include="src\c\deserialization.c" /> + <ClCompile Include="src\c\DllmainMpi.c" /> + <ClCompile Include="src\c\serialization.c" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="src\c\mpi.rc" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\api_scilab\api_scilab.vcxproj"> + <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project> + </ProjectReference> + <ProjectReference Include="..\core\src\c\core.vcxproj"> + <Project>{c6e2bc17-34d8-46e4-85f3-6293cb21adcd}</Project> + </ProjectReference> + <ProjectReference Include="..\output_stream\src\c\output_stream.vcxproj"> + <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project> + </ProjectReference> + </ItemGroup> + <ItemGroup> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/mpi/mpi.vcxproj.filters b/modules/mpi/mpi.vcxproj.filters new file mode 100755 index 000000000..a89f66de3 --- /dev/null +++ b/modules/mpi/mpi.vcxproj.filters @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Resource Files"> + <UniqueIdentifier>{6dbf7529-8fc2-429c-b172-1a4705e406d6}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{99e7e73f-3a6b-4e36-b4e5-403fa9ef3671}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files"> + <UniqueIdentifier>{513ed79d-e6e4-428a-ba65-070e90b9221f}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="src\c\mpi.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="includes\gw_mpi.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="src\c\deserialization.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="src\c\sci_mpi.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="src\c\serialization.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="includes\dynlib_mpi.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="src\c\deserialization.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="src\c\serialization.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\gw_mpi.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_bcast.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_comm_rank.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_comm_size.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_finalize.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_get_processor_name.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_init.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_irecv.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_isend.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_recv.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_send.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sci_gateway\c\sci_mpi_wait.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="src\c\DllmainMpi.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/mpi/readme.txt b/modules/mpi/readme.txt new file mode 100755 index 000000000..0a9daaa87 --- /dev/null +++ b/modules/mpi/readme.txt @@ -0,0 +1,10 @@ +lancer un test unitaire: +mpirun -c 2 ./bin/scilab -nwni -f modules/mpi/tests/unit_tests/mpi_init.tst + +mpirun -c 2 -tag-output <command> will show which nodes display what + +mpirun -c 5 ./bin/scilab -nwni -e "MPIHelloWorld()" + +$ mpirun -c 5 scilab -q --eval "MPIPi(2E7,'r')" # parallel run, 5 ranks + +$ mpirun -c 5 scilab -q -e "getf('SCI/modules/mpi/macros/MPIPi_seq.sci'); MPIPi_seq(2E7)" # parallel run, 5 ranks diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-gw_mpi.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-gw_mpi.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-gw_mpi.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_bcast.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_bcast.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_bcast.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_comm_rank.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_comm_rank.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_comm_rank.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_comm_size.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_comm_size.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_comm_size.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_finalize.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_finalize.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_finalize.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_get_processor_name.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_get_processor_name.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_get_processor_name.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_init.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_init.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_init.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_irecv.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_irecv.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_irecv.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_isend.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_isend.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_isend.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_recv.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_recv.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_recv.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_send.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_send.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_send.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_wait.Plo b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_wait.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/sci_gateway/c/.deps/libscimpi_la-sci_mpi_wait.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/sci_gateway/c/gw_mpi.c b/modules/mpi/sci_gateway/c/gw_mpi.c new file mode 100755 index 000000000..3f07e2e1a --- /dev/null +++ b/modules/mpi/sci_gateway/c/gw_mpi.c @@ -0,0 +1,46 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2009 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include "gw_mpi.h" +#include "api_scilab.h" +#include "MALLOC.h" +#include "callFunctionFromGateway.h" +/*-----------------------------------------------------------------------------------*/ +static gw_generic_table Tab[] = +{ + {sci_mpi_init, "MPI_Init"}, + {sci_mpi_finalize, "MPI_Finalize"}, + {sci_mpi_comm_size, "MPI_Comm_size"}, + {sci_mpi_comm_rank, "MPI_Comm_rank"}, + {sci_mpi_recv, "MPI_Recv"}, + {sci_mpi_send, "MPI_Send"}, + {sci_mpi_get_processor_name, "MPI_Get_processor_name"}, + {sci_mpi_bcast, "MPI_Bcast"}, + {sci_mpi_irecv, "MPI_Irecv"}, + {sci_mpi_isend, "MPI_Isend"}, + {sci_mpi_wait, "MPI_Wait"} +}; +/*-----------------------------------------------------------------------------------*/ +int gw_mpi(void) +{ + Rhs = Max(0, Rhs); + + if (pvApiCtx == NULL) + { + pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx)); + } + + pvApiCtx->pstName = (char*)Tab[Fin - 1].name; + callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab)); + return 0; +} + +/*-----------------------------------------------------------------------------------*/ diff --git a/modules/mpi/sci_gateway/c/sci_mpi_bcast.c b/modules/mpi/sci_gateway/c/sci_mpi_bcast.c new file mode 100755 index 000000000..ab5c5a725 --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_bcast.c @@ -0,0 +1,118 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "api_scilab.h" +#include <stdio.h> +#include <mpi.h> +#include "gw_mpi.h" +#include "Scierror.h" +#include "MALLOC.h" +#include "localization.h" +#include "serialization.h" +#include "deserialization.h" + +int sci_mpi_bcast(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int iRet = 0; + int *piAddr = NULL; + int *piAddr2 = NULL; + + int *piBuffer = NULL; + int iBufferSize = 0; + double rootID = 0; + int rank = 0; + + CheckInputArgument(pvApiCtx, 2, 2); + CheckOutputArgument(pvApiCtx, 1, 1); + + sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr2, &rootID)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 1); + return 0; + } + + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + iRet = MPI_Comm_rank(MPI_COMM_WORLD, &rank); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string = 0; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not get communicator rank of the node %d: %s\n"), fname, rootID, error_string); + return 0; + } + + if (rank == rootID) + { + iRet = serialize_to_mpi(pvApiCtx, piAddr, &piBuffer, &iBufferSize); + if (iRet) + { + Scierror(999, _("Unable to serialize data\n")); + return 0; + } + } + + /* First, send the size of the data as broadcast */ + iRet = MPI_Bcast(&iBufferSize, 1, MPI_INT, (int)rootID, MPI_COMM_WORLD); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string = 0; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not broadcast the variable to the node %d: %s\n"), fname, rootID, error_string); + return 0; + } + + if (rank != rootID) + { + piBuffer = (int*)MALLOC(sizeof(int) * iBufferSize); + } + + /* Second, restore the data with the right size */ + iRet = MPI_Bcast(piBuffer, iBufferSize, MPI_INT, (int)rootID, MPI_COMM_WORLD); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string = 0; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not broadcast the variable to the node %d: %s\n"), fname, rootID, error_string); + return 0; + } + + iRet = deserialize_from_mpi(pvApiCtx, piBuffer, iBufferSize); + FREE(piBuffer); + if (iRet) + { + Scierror(999, _("%s: Unable to deserialize data.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_comm_rank.c b/modules/mpi/sci_gateway/c/sci_mpi_comm_rank.c new file mode 100755 index 000000000..9dd1e8bee --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_comm_rank.c @@ -0,0 +1,41 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2009 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "Scierror.h" +#include "localization.h" +#include "api_scilab.h" + +/** + * This function returns the rank of a process within + * the specified communicator. + */ +int sci_mpi_comm_rank (char *fname, unsigned long fname_len) +{ + int comm_rank = 0; + + CheckInputArgument(pvApiCtx, 0, 0); // Check the parameters of the function ... Here 0 + CheckOutputArgument(pvApiCtx, 1, 1); // The output of the function (1 parameter) + + MPI_Comm_rank(MPI_COMM_WORLD, &comm_rank); + + if (createScalarDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, (double)comm_rank)) + { + Scierror(999, _("%s: Unable to create variable.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} + diff --git a/modules/mpi/sci_gateway/c/sci_mpi_comm_size.c b/modules/mpi/sci_gateway/c/sci_mpi_comm_size.c new file mode 100755 index 000000000..7566e9189 --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_comm_size.c @@ -0,0 +1,64 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2009 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "api_scilab.h" +#include "stack-c.h" +#include "Scierror.h" +#include "localization.h" +#include "MALLOC.h" + +/** + * This function returns the rank of a process + */ +int sci_mpi_comm_size(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int comm_size; + MPI_Comm comm = MPI_COMM_WORLD; + int *piAddr = NULL; + double dblReal = 0; + + CheckInputArgument(pvApiCtx, 0, 1); // Check the parameters of the function ... Here 0 or 1 + CheckOutputArgument(pvApiCtx, 1, 1); // The output of the function (1 parameter) + + if (nbInputArgument(pvApiCtx) == 1) + { + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr, &dblReal)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 1); + return 0; + } + + comm = (MPI_Comm)(int)dblReal; + } + + MPI_Comm_size(comm, &comm_size); + if (createScalarDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, (double)comm_size)) + { + Scierror(999, _("%s: Memory allocation error.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_finalize.c b/modules/mpi/sci_gateway/c/sci_mpi_finalize.c new file mode 100755 index 000000000..e63334aec --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_finalize.c @@ -0,0 +1,49 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2009 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <stdio.h> +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "Scierror.h" +#include "localization.h" +#include "api_scilab.h" +#include "MALLOC.h" + +static void mpi_finalize_internal() +{ + FREE(listRequestPointer); + FREE(listRequestPointerSize); + FREE(request); +} + +int sci_mpi_finalize(char *fname, unsigned long fname_len) +{ + int iRet = 0; + CheckInputArgument(pvApiCtx, 0, 0); + CheckOutputArgument(pvApiCtx, 1, 1); + mpi_finalize_internal(); + iRet = MPI_Finalize(); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not finalize the MPI instance: %s\n"), fname, error_string); + return 0; + } + + // TODO: catch les erreurs + AssignOutputVariable(pvApiCtx, 1) = 0; + ReturnArguments(pvApiCtx); + return 0; + +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_get_processor_name.c b/modules/mpi/sci_gateway/c/sci_mpi_get_processor_name.c new file mode 100755 index 000000000..8213befd2 --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_get_processor_name.c @@ -0,0 +1,51 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 20011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "stack-c.h" +#include "api_scilab.h" +#include "Scierror.h" +#include "localization.h" + +/** + * This function returns the rank of a process + */ +int sci_mpi_get_processor_name(char *fname, unsigned long fname_len) +{ + int iSizeProcessorName; + char processorName[MPI_MAX_PROCESSOR_NAME]; + int iRet = 0; + + CheckInputArgument(pvApiCtx, 0, 0); + CheckOutputArgument(pvApiCtx, 1, 1); // The output of the function (1 parameter) + + iRet = MPI_Get_processor_name(processorName, &iSizeProcessorName); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not get processor name: %s\n"), fname, error_string); + return 0; + } + + if (createSingleString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, processorName)) + { + Scierror(999, _("%s: Memory allocation error.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_init.c b/modules/mpi/sci_gateway/c/sci_mpi_init.c new file mode 100755 index 000000000..3b0e035bf --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_init.c @@ -0,0 +1,81 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2009 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> // for NULL, fprintf, stderr +#include <mpi.h> +#include "MALLOC.h" +#include "BOOL.h" // for ::TRUE, ::FALSE, BOOL +#include "api_scilab.h" // for pvApiCtx, etc + +/* Create some static datastructure to store all the Request references */ +MPI_Request *request; +int **listRequestPointer; +int *listRequestPointerSize; +static int REQUEST_MAXSIZE = 10000; + +/** + * This function init the MPI env + */ +MPI_Errhandler errhdl; + +/* should be moved elsewhere */ +void MPIErrHandler(MPI_Comm * comm, int *errorcode, ...) +{ + char buffer[4096]; + int resultlen; + + MPI_Error_string(*errorcode, buffer, &resultlen); + buffer[resultlen] = 0; + fprintf(stderr, "MPI internal error: %s\n", buffer); +} + +BOOL mpi_initialized = FALSE; + +static void mpi_init_internal() +{ + int i = 0; + if (mpi_initialized == TRUE) + { + return; + } + + request = (MPI_Request *)MALLOC(REQUEST_MAXSIZE * sizeof(MPI_Request)); + listRequestPointer = (int**)MALLOC(REQUEST_MAXSIZE * sizeof(int*)); + listRequestPointerSize = (int*)MALLOC(REQUEST_MAXSIZE * sizeof(int)); + for (i = 0; i < REQUEST_MAXSIZE; i++) + { + request[i] = 0; + listRequestPointer[i] = NULL; + listRequestPointerSize[i] = 0; + } + + mpi_initialized = TRUE; + +} + +int sci_mpi_init(char *fname, unsigned long fname_len) +{ + int flag; + + CheckInputArgument(pvApiCtx, 0, 0); + CheckOutputArgument(pvApiCtx, 1, 1); + mpi_init_internal(); + MPI_Initialized(&flag); + if (!flag) + { + /* MPI Not yet initialized */ + MPI_Init(NULL, NULL); + MPI_Comm_create_errhandler(MPIErrHandler, &errhdl); + } + AssignOutputVariable(pvApiCtx, 1) = 0; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_irecv.c b/modules/mpi/sci_gateway/c/sci_mpi_irecv.c new file mode 100755 index 000000000..da7373bfb --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_irecv.c @@ -0,0 +1,139 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include <mpi.h> +#include "api_scilab.h" +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "Scierror.h" +#include "localization.h" +#include "MALLOC.h" +#include "deserialization.h" + +int sci_mpi_irecv(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int iRet = 0; + int *piBuffer = NULL; + int iBufferSize = 0; + + int *piAddr1 = NULL; + int *piAddr2 = NULL; + int *piAddr3 = NULL; + double Tag = 0; + double Rank = 0; + int iRequestID = 0; + double dblRequestID = 0; + MPI_Status status; + + CheckInputArgument(pvApiCtx, 3, 3); + CheckOutputArgument(pvApiCtx, 0, 1); + + //Rank + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr1); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr1, &Rank)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 1); + return 0; + } + + //Tag + sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr2, &Tag)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 2); + return 0; + } + + + // Request + sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr3, &dblRequestID)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 3); + return 0; + } + + iRequestID = (int)dblRequestID; + if (iRequestID < 0) + { + Scierror(999, _("%s: Wrong values for input argument #%d: Positive value expected.\n"), fname, 3); + return 0; + } + + iRet = MPI_Probe((int)Rank, (int)Tag, MPI_COMM_WORLD, &status); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Probe failed. Rank %d / Tag %d: %s\n"), fname, Rank, Tag, error_string); + return 0; + } + + iRet = MPI_Get_count(&status, MPI_INT, &iBufferSize); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n"), fname, Rank, Tag, error_string); + return 0; + } + + piBuffer = (int *)MALLOC(sizeof(int) * iBufferSize); + if (piBuffer == NULL) + { + Scierror(999, "%s: Could not create the received variable.\n", fname); + return 0; + } + + iRet = MPI_Irecv(piBuffer, iBufferSize, MPI_INT, (int)Rank, (int)Tag, MPI_COMM_WORLD, &request[iRequestID]); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Irecv failed. Rank %d / Tag %d: %s\n"), fname, Rank, Tag, error_string); + return 0; + } + + /* Store the pointer piBuffer */ + listRequestPointer[iRequestID] = piBuffer; + listRequestPointerSize[iRequestID] = iBufferSize; + + AssignOutputVariable(pvApiCtx, 1) = 0; + ReturnArguments(pvApiCtx); + return 0; +} + diff --git a/modules/mpi/sci_gateway/c/sci_mpi_isend.c b/modules/mpi/sci_gateway/c/sci_mpi_isend.c new file mode 100755 index 000000000..83ff915e6 --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_isend.c @@ -0,0 +1,112 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include <mpi.h> +#include "api_scilab.h" +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "Scierror.h" +#include "localization.h" +#include "MALLOC.h" +#include "serialization.h" + +#define TAG 0 + + +int sci_mpi_isend(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int iRet = 0; + int *piAddr = NULL; + int *piAddr2 = NULL; + int *piAddr3 = NULL; + + int *piBuffer = NULL; + int iBufferSize = 0; + double NodeID = 0; + int iRequestID = 0; + double dblRequestID = 0; + + CheckInputArgument(pvApiCtx, 3, 3); + CheckOutputArgument(pvApiCtx, 1, 1); + + sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr2, &NodeID)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 2); + return 0; + } + + sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr3); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr3, &dblRequestID)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 3); + return 0; + } + + iRequestID = (int)dblRequestID; + if (iRequestID < 0) + { + Scierror(999, _("%s: Wrong values for input argument #%d: Positive value expected.\n"), fname, 3); + return 0; + } + + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + //convert data from Scilab to MPI + iRet = serialize_to_mpi(pvApiCtx, piAddr, &piBuffer, &iBufferSize); + if (iRet) + { + Scierror(999, _("Unable to serialize data\n")); + return 0; + } + + iRet = MPI_Isend(piBuffer, iBufferSize, MPI_INT, (int)NodeID, TAG, MPI_COMM_WORLD, &request[iRequestID]); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not send the variable to the node %d: %s\n"), fname, NodeID, error_string); + return 0; + } + + if (createScalarBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, !iRet)) + { + Scierror(999, _("%s: Memory allocation error.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_recv.c b/modules/mpi/sci_gateway/c/sci_mpi_recv.c new file mode 100755 index 000000000..1c7681f61 --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_recv.c @@ -0,0 +1,121 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include <mpi.h> +#include "api_scilab.h" +#include "gw_mpi.h" +#include "Scierror.h" +#include "MALLOC.h" +#include "localization.h" +#include "deserialization.h" + +int sci_mpi_recv(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int iRet = 0; + int *piBuffer = NULL; + int iBufferSize = 0; + + int *piAddr1 = NULL; + int *piAddr2 = NULL; + double Tag = 0; + double Rank = 0; + MPI_Status status; + + CheckInputArgument(pvApiCtx, 2, 2); + CheckOutputArgument(pvApiCtx, 1, 1); + + //Rank + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr1); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr1, &Rank)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 1); + return 0; + } + + //Tag + sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr2, &Tag)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 2); + return 0; + } + + //wait message "Rank" node + iRet = MPI_Probe((int)Rank, (int)Tag, MPI_COMM_WORLD, &status); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Probe failed. Rank %d / Tag %d: %s\n"), fname, Rank, Tag, error_string); + return 0; + } + + //get data size + iRet = MPI_Get_count(&status, MPI_INT, &iBufferSize); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Get_count failed. Rank %d / Tag %d: %s\n"), fname, Rank, Tag, error_string); + return 0; + } + + //alloc memory to receive data + piBuffer = (int *)MALLOC(sizeof(int) * iBufferSize); + if (piBuffer == NULL) + { + Scierror(999, _("%s: Could not create the received variable.\n"), fname); + return 0; + } + + //receive data + iRet = MPI_Recv(piBuffer, iBufferSize, MPI_INT, (int)Rank, (int)Tag, MPI_COMM_WORLD, &status); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Recv failed. Rank %d / Tag %d: %s\n"), fname, Rank, Tag, error_string); + return 0; + } + + //convert data from MPI to Scilab + iRet = deserialize_from_mpi(pvApiCtx, piBuffer, iBufferSize); + FREE(piBuffer); + if (iRet) + { + Scierror(999, _("%s: Unable to deserialize data !\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} + diff --git a/modules/mpi/sci_gateway/c/sci_mpi_send.c b/modules/mpi/sci_gateway/c/sci_mpi_send.c new file mode 100755 index 000000000..10fbad0ac --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_send.c @@ -0,0 +1,88 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include <mpi.h> +#include "api_scilab.h" +#include "gw_mpi.h" +#include "Scierror.h" +#include "localization.h" +#include "MALLOC.h" +#include "serialization.h" + +#define TAG 0 + +int sci_mpi_send(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int iRet = 0; + int *piAddr = NULL; + int *piAddr2 = NULL; + + int *piBuffer = NULL; + int iBufferSize = 0; + double NodeID = 0; + + CheckInputArgument(pvApiCtx, 2, 2); + CheckOutputArgument(pvApiCtx, 1, 1); + + sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr2); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr2, &NodeID)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 1); + return 0; + } + + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2); + return 0; + } + + //convert data from Scilab to MPI + iRet = serialize_to_mpi(pvApiCtx, piAddr, &piBuffer, &iBufferSize); + if (iRet) + { + Scierror(999, _("Unable to serialize data\n")); + return 0; + } + + //send data + iRet = MPI_Send(piBuffer, iBufferSize, MPI_INT, (int)NodeID, TAG, MPI_COMM_WORLD); + FREE(piBuffer); + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: Could not send the variable to the node %d: %s\n"), fname, NodeID, error_string); + return 0; + } + + if (createScalarBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, !iRet)) + { + Scierror(999, _("%s: Memory allocation error.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/c/sci_mpi_wait.c b/modules/mpi/sci_gateway/c/sci_mpi_wait.c new file mode 100755 index 000000000..6e5042eb1 --- /dev/null +++ b/modules/mpi/sci_gateway/c/sci_mpi_wait.c @@ -0,0 +1,93 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Sylvestre LEDRU + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <stdio.h> +#include <mpi.h> +#include "api_scilab.h" +#include "gw_mpi.h" +#include "sci_mpi.h" +#include "Scierror.h" +#include "localization.h" +#include "MALLOC.h" +#include "serialization.h" +#include "deserialization.h" + +int sci_mpi_wait(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + int iRet = 0; + int *piAddr = NULL; + int *piBuffer = NULL; + int iBufferSize = 0; + double NodeID = 0; + int iRequestID; + double dblRequestID; + + CheckInputArgument(pvApiCtx, 1, 1); + CheckOutputArgument(pvApiCtx, 1, 1); + + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + return 0; + } + + if (getScalarDouble(pvApiCtx, piAddr, &dblRequestID)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A scalar integer value expected.\n"), fname, 1); + return 0; + } + + iRequestID = (int)dblRequestID; + + if (iRequestID < 0) + { + Scierror(999, _("%s: Wrong values for input argument #%d: Positive value expected.\n"), fname, 1); + return 0; + } + + iRet = MPI_Wait(&request[iRequestID], MPI_STATUS_IGNORE); /* TODO: MPI_COMM_WORLD should be changed */ + if (iRet != MPI_SUCCESS) + { + char error_string[MPI_MAX_ERROR_STRING]; + int length_of_error_string; + + MPI_Error_string(iRet, error_string, &length_of_error_string); + Scierror(999, _("%s: MPI_Wait failed while waiting %d: %s\n"), fname, NodeID, error_string); + return 0; + } + + /* Restore the list */ + piBuffer = listRequestPointer[iRequestID]; + iBufferSize = listRequestPointerSize[iRequestID]; + + if (iBufferSize == 0) + { + //wait on sender not on receiver + AssignOutputVariable(pvApiCtx, 1) = 0; + ReturnArguments(pvApiCtx); + return 0; + } + + iRet = deserialize_from_mpi(pvApiCtx, piBuffer, iBufferSize); + FREE(piBuffer); + if (iRet) + { + Scierror(999, _("%s: Unable to deserialize data.\n"), fname); + return 0; + } + + AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; + ReturnArguments(pvApiCtx); + return 0; +} diff --git a/modules/mpi/sci_gateway/mpi b/modules/mpi/sci_gateway/mpi new file mode 100755 index 000000000..bc79227ae --- /dev/null +++ b/modules/mpi/sci_gateway/mpi @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> + +<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd"> + +<GATEWAY> + +<!-- =================== --> +<!-- + Scilab + Sylvestre Ledru + INRIA 2007 + =================== + Don't edit if you aren't sure +--> +<!-- =================== --> + +<PRIMITIVE> + <GATEWAY_ID>52</GATEWAY_ID> + <PRIMITIVE_ID>1</PRIMITIVE_ID> + <PRIMITIVE_NAME>mpi_init</PRIMITIVE_NAME> +</PRIMITIVE> + +<PRIMITIVE> + <GATEWAY_ID>52</GATEWAY_ID> + <PRIMITIVE_ID>2</PRIMITIVE_ID> + <PRIMITIVE_NAME>mpi_finalize</PRIMITIVE_NAME> +</PRIMITIVE> + + +<PRIMITIVE> + <GATEWAY_ID>52</GATEWAY_ID> + <PRIMITIVE_ID>3</PRIMITIVE_ID> + <PRIMITIVE_NAME>mpi_comm_size</PRIMITIVE_NAME> +</PRIMITIVE> + +<!-- +;52 1 mpi_send +;52 2 mpi_recv +;52 3 mpi_isend +;52 4 mpi_irecv +;52 5 mpi_init +;52 6 mpi_finalize +;52 7 mpi_comm_rank +--> + +</GATEWAY> diff --git a/modules/mpi/sci_gateway/mpi_gateway.xml b/modules/mpi/sci_gateway/mpi_gateway.xml new file mode 100755 index 000000000..276218ada --- /dev/null +++ b/modules/mpi/sci_gateway/mpi_gateway.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd"> +<GATEWAY name="mpi"> + <!-- =================== --> + <!-- + Scilab + Interface description. In this file, we define the list of the function which + will be available into Scilab and the link to the "native" function. + + gatewayId is the position in the hashtable 'Interfaces' defined in the + file SCI/modules/core/src/c/callinterf.h + + primitiveId is the position in the hashtable '<module>Table Tab[]' defined + in the file modules/<module>/sci_gateway/c/gw_<module>.c + + primitiveName is the name of the Scilab function + + @author Allan CORNET + @author Sylvestre LEDRU + @date INRIA 2007 + =================== + Don't touch if you do not know what you are doing +--> + <!-- =================== --> + <PRIMITIVE gatewayId="73" primitiveId="1" primitiveName="MPI_Init"/> + <PRIMITIVE gatewayId="73" primitiveId="2" primitiveName="MPI_Finalize"/> + <PRIMITIVE gatewayId="73" primitiveId="3" primitiveName="MPI_Comm_size"/> + <PRIMITIVE gatewayId="73" primitiveId="4" primitiveName="MPI_Comm_rank"/> + <PRIMITIVE gatewayId="73" primitiveId="5" primitiveName="MPI_Recv"/> + <PRIMITIVE gatewayId="73" primitiveId="6" primitiveName="MPI_Send"/> + <PRIMITIVE gatewayId="73" primitiveId="7" primitiveName="MPI_Get_processor_name"/> + <PRIMITIVE gatewayId="73" primitiveId="8" primitiveName="MPI_Bcast"/> + <PRIMITIVE gatewayId="73" primitiveId="9" primitiveName="MPI_Irecv"/> + <PRIMITIVE gatewayId="73" primitiveId="10" primitiveName="MPI_Isend"/> + <PRIMITIVE gatewayId="73" primitiveId="11" primitiveName="MPI_Wait"/> +</GATEWAY> diff --git a/modules/mpi/src/c/.deps/libscimpi_la-deserialization.Plo b/modules/mpi/src/c/.deps/libscimpi_la-deserialization.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/src/c/.deps/libscimpi_la-deserialization.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/src/c/.deps/libscimpi_la-serialization.Plo b/modules/mpi/src/c/.deps/libscimpi_la-serialization.Plo new file mode 100755 index 000000000..9ce06a81e --- /dev/null +++ b/modules/mpi/src/c/.deps/libscimpi_la-serialization.Plo @@ -0,0 +1 @@ +# dummy diff --git a/modules/mpi/src/c/DllmainMpi.c b/modules/mpi/src/c/DllmainMpi.c new file mode 100755 index 000000000..f65a5da50 --- /dev/null +++ b/modules/mpi/src/c/DllmainMpi.c @@ -0,0 +1,39 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +/*--------------------------------------------------------------------------*/ +#include <windows.h> +/*--------------------------------------------------------------------------*/ +#pragma comment(lib,"../../bin/libintl.lib") +#pragma comment(lib,"../../bin/blasplus.lib") + +//MS MPI +#pragma comment(lib,"../../libs/mpi/lib/msmpi.lib") + + +/*--------------------------------------------------------------------------*/ +int WINAPI DllMain (HINSTANCE hInstance , DWORD reason, PVOID pvReserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return 1; +} +/*--------------------------------------------------------------------------*/ + diff --git a/modules/mpi/src/c/deserialization.c b/modules/mpi/src/c/deserialization.c new file mode 100755 index 000000000..e77d989ef --- /dev/null +++ b/modules/mpi/src/c/deserialization.c @@ -0,0 +1,309 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include "api_scilab.h" +#include "BOOL.h" +#include "MALLOC.h" +#include "deserialization.h" + +static int deserialize_double(void *_pvCtx, int *_piBuffer, int _iBufferSize) +{ + SciErr sciErr; + int iRows = _piBuffer[1]; + int iCols = _piBuffer[2]; + int iComplex = _piBuffer[3]; + double *pdblR = NULL; + double *pdblI = NULL; + int iSize = 0; + + //check size of input buffer + iSize = 4 + (iRows * iCols * (iComplex + 1) * (sizeof(double) / sizeof(int))); + if (iSize != _iBufferSize) + { + printf("Bad buffer size: \n\tReceived: %d\n\tExpected: %d\n", _iBufferSize, iSize); + return 1; + } + + pdblR = (double *)(_piBuffer + 4); + pdblI = pdblR + iRows * iCols; + + if (iComplex) + { + sciErr = createComplexMatrixOfDouble(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, pdblR, pdblI); + } + else + { + sciErr = createMatrixOfDouble(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, pdblR); + } + + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + return 0; +} + +static int deserialize_string(void *_pvCtx, int *_piBuffer, int _iBufferSize) +{ + SciErr sciErr; + int i = 0; + int iRows = _piBuffer[1]; + int iCols = _piBuffer[2]; + int iSize = 0; + int *piInLen = _piBuffer + 4; + char **pstData = NULL; + char *pstInData = (char *)(_piBuffer + 4 + iRows * iCols); + + //check size of input buffer + for (i = 0; i < iRows * iCols; i++) + { + iSize += piInLen[i]; + } + + if (iSize % 4) + { + iSize = iSize * sizeof(char) / sizeof(int) + 1; + } + else + { + iSize = iSize * sizeof(char) / sizeof(int); + } + + iSize += (4 + iRows * iCols); + + if (iSize != _iBufferSize) + { + printf("Bad buffer size: \n\tReceived: %d\n\tExpected: %d\n", _iBufferSize, iSize); + return 1; + } + pstData = (char **)MALLOC(iRows * iCols * sizeof(char *)); + + for (i = 0; i < iRows * iCols; i++) + { + pstData[i] = (char *)MALLOC((piInLen[i] + 1) * sizeof(char)); + memcpy(pstData[i], pstInData, piInLen[i]); + pstData[i][piInLen[i]] = 0; + pstInData += piInLen[i]; + } + + sciErr = createMatrixOfString(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (const char * const *)pstData); + for (i = 0; i < iRows * iCols; i++) + { + FREE(pstData[i]); + } + + FREE(pstData); + + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + return 0; +} + +static int deserialize_boolean(void *_pvCtx, int *_piBuffer, int _iBufferSize) +{ + SciErr sciErr; + int iRows = _piBuffer[1]; + int iCols = _piBuffer[2]; + int iSize = 0; + int *piBool = NULL; + + //check size of input buffer + iSize = 4 + (iRows * iCols); + if (iSize != _iBufferSize) + { + printf("Bad buffer size: \n\tReceived: %d\n\tExpected: %d\n", _iBufferSize, iSize); + return 1; + } + + piBool = _piBuffer + 4; + sciErr = createMatrixOfBoolean(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, piBool); + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + return 0; +} + +static int deserialize_int(void *_pvCtx, int *_piBuffer, int _iBufferSize) +{ + SciErr sciErr; + int iRows = _piBuffer[1]; + int iCols = _piBuffer[2]; + int iPrecision = _piBuffer[3]; + int iItemSize = 0; + int iSize = 0; + void *pvData = NULL; + + //check size of input buffer + if (iPrecision == SCI_INT8 || iPrecision == SCI_UINT8) + { + iItemSize = sizeof(char); + } + else if (iPrecision == SCI_INT16 || iPrecision == SCI_UINT16) + { + iItemSize = sizeof(short); + } + else if (iPrecision == SCI_INT32 || iPrecision == SCI_UINT32) + { + iItemSize = sizeof(int); + } + /* + else if(iPrecision == SCI_INT64 || iPrecision == SCI_UINT64) + { + iItemSize = sizeof(long long); + } + */ + iSize = iRows * iCols; + if ((iSize * iItemSize) % sizeof(int)) + { + iSize = (iSize * iItemSize) / sizeof(int) + 1; + } + else + { + iSize = (iSize * iItemSize) / (sizeof(int)); + } + + iSize += 4; + if (iSize != _iBufferSize) + { + printf("Bad buffer size: \n\tReceived: %d\n\tExpected: %d\n", _iBufferSize, iSize); + return 1; + } + + pvData = _piBuffer + 4; + + switch (iPrecision) + { + case SCI_INT8: + sciErr = createMatrixOfInteger8(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (char *)pvData); + break; + case SCI_UINT8: + sciErr = createMatrixOfUnsignedInteger8(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (unsigned char *)pvData); + break; + case SCI_INT16: + sciErr = createMatrixOfInteger16(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (short *)pvData); + break; + case SCI_UINT16: + sciErr = createMatrixOfUnsignedInteger16(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (unsigned short *)pvData); + break; + case SCI_INT32: + sciErr = createMatrixOfInteger32(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (int *)pvData); + break; + case SCI_UINT32: + sciErr = createMatrixOfUnsignedInteger32(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (unsigned int *)pvData); + break; + /* + case SCI_INT64 : + sciErr = createMatrixOfInteger64(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (long long*)pvData); + break; + case SCI_UINT64 : + sciErr = createMatrixOfUnsignedInteger64(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, (unsigned long long*)pvData); + break; + */ + default: + break; + } + + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + return 0; +} + +static int deserialize_sparse(void *_pvCtx, int *_piBuffer, int _iBufferSize, BOOL _bData) +{ + SciErr sciErr; + int iRows = _piBuffer[1]; + int iCols = _piBuffer[2]; + int iComplex = _piBuffer[3]; + int iItemCount = _piBuffer[4]; + int *piRowCount = NULL; + int *piColPos = NULL; + double *pdblR = NULL; + double *pdblI = NULL; + int iSize = 0; + + iSize = 5 + iRows + iItemCount; + if (_bData) + { + iSize += iItemCount * (iComplex + 1) * sizeof(double) / sizeof(int); + } + + if (iSize != _iBufferSize) + { + printf("Bad buffer size: \n\tReceived: %d\n\tExpected: %d\n", _iBufferSize, iSize); + return 1; + } + + piRowCount = _piBuffer + 5; + piColPos = _piBuffer + 5 + iRows; + + if (_bData) + { + pdblR = (double *)(_piBuffer + 5 + iRows + iItemCount); + if (iComplex) + { + pdblI = pdblR + iItemCount; + sciErr = createComplexSparseMatrix(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, iItemCount, piRowCount, piColPos, pdblR, pdblI); + } + else + { + sciErr = createSparseMatrix(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, iItemCount, piRowCount, piColPos, pdblR); + } + } + else + { + sciErr = createBooleanSparseMatrix(_pvCtx, nbInputArgument(_pvCtx) + 1, iRows, iCols, iItemCount, piRowCount, piColPos); + } + + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + return 0; +} + +int deserialize_from_mpi(void *_pvCtx, int *_piBuffer, int _iBufferSize) +{ + switch (*_piBuffer) + { + case sci_matrix: + return deserialize_double(pvApiCtx, _piBuffer, _iBufferSize); + case sci_strings: + return deserialize_string(pvApiCtx, _piBuffer, _iBufferSize); + case sci_boolean: + return deserialize_boolean(pvApiCtx, _piBuffer, _iBufferSize); + case sci_sparse: + return deserialize_sparse(pvApiCtx, _piBuffer, _iBufferSize, TRUE); + case sci_boolean_sparse: + return deserialize_sparse(pvApiCtx, _piBuffer, _iBufferSize, FALSE); + case sci_ints: + return deserialize_int(pvApiCtx, _piBuffer, _iBufferSize); + default: + return -1; //unknow type + } +} + + diff --git a/modules/mpi/src/c/deserialization.h b/modules/mpi/src/c/deserialization.h new file mode 100755 index 000000000..1a4cca10a --- /dev/null +++ b/modules/mpi/src/c/deserialization.h @@ -0,0 +1,21 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +/** + * Deserialize a mpi data to a Scilab variable + * + * @param _pvCtx The runtime context + * @param _piBuffer The buffer + * @param _iBufferSize The size of the buffer + * @return 0 in case of success + */ +int deserialize_from_mpi(void *_pvCtx, int *_piBuffer, int _iBufferSize); diff --git a/modules/mpi/src/c/mpi.rc b/modules/mpi/src/c/mpi.rc new file mode 100755 index 000000000..c838bf78c --- /dev/null +++ b/modules/mpi/src/c/mpi.rc @@ -0,0 +1,96 @@ +// Microsoft Visual C++ generated resource script. +// + + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +//#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 5,5,2,0 + PRODUCTVERSION 5,5,2,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04b0" + BEGIN + VALUE "FileDescription", "mpi module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "mpi module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "mpi.dll" + VALUE "ProductName", " mpi module" + VALUE "ProductVersion", "5, 5, 2, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/modules/mpi/src/c/sci_mpi.h b/modules/mpi/src/c/sci_mpi.h new file mode 100755 index 000000000..2da5474e2 --- /dev/null +++ b/modules/mpi/src/c/sci_mpi.h @@ -0,0 +1,11 @@ + +#ifndef __SCIMPI +#define __SCIMPI + +#include <mpi.h> +/* Create some static datastructure to store all the Request references */ +extern MPI_Request *request; +extern int **listRequestPointer; +extern int *listRequestPointerSize; + +#endif /* __SCIMPI */ diff --git a/modules/mpi/src/c/serialization.c b/modules/mpi/src/c/serialization.c new file mode 100755 index 000000000..fd688758a --- /dev/null +++ b/modules/mpi/src/c/serialization.c @@ -0,0 +1,457 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +#include <string.h> +#include <stdio.h> +#include "api_scilab.h" +#include "BOOL.h" +#include "MALLOC.h" +#include "serialization.h" + +static int serialize_double(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize) +{ + SciErr sciErr; + int iRows = 0; + int iCols = 0; + int iOne = 1; + int iSize = 0; + double *pdblR = NULL; + double *pdblI = NULL; + + int *piOut = NULL; + int iOutLen = 0; + + if (isVarComplex(_pvCtx, _piAddr)) + { + double *p = NULL; + + sciErr = getComplexMatrixOfDouble(_pvCtx, _piAddr, &iRows, &iCols, &pdblR, &pdblI); + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + iOutLen = 4 + (2 * iRows * iCols * sizeof(double) / sizeof(int)); + piOut = (int *)MALLOC(iOutLen * sizeof(int)); + if (piOut == NULL) + { + return 1; + } + + piOut[0] = sci_matrix; + piOut[1] = iRows; + piOut[2] = iCols; + piOut[3] = 1; //complex + + //move 'p' to first real value + p = (double *)(piOut + 4); + iSize = iRows * iCols; + C2F(dcopy) (&iSize, pdblR, &iOne, p, &iOne); + //move 'p' to first complex value + p = p + iRows * iCols; + C2F(dcopy) (&iSize, pdblI, &iOne, p, &iOne); + } + else + { + double *p = NULL; + + sciErr = getMatrixOfDouble(_pvCtx, _piAddr, &iRows, &iCols, &pdblR); + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + iOutLen = 4 + (iRows * iCols * sizeof(double) / sizeof(int)); + piOut = (int *)MALLOC(iOutLen * sizeof(int)); + if (piOut == NULL) + { + return 1; + } + + piOut[0] = sci_matrix; + piOut[1] = iRows; + piOut[2] = iCols; + piOut[3] = 0; //not complex + + //move 'p' to first value + p = (double *)(piOut + 4); + iSize = iRows * iCols; + C2F(dcopy) (&iSize, pdblR, &iOne, p, &iOne); + } + + *_piBuffer = piOut; + *_piBufferSize = iOutLen; + return 0; +} + +static int serialize_string(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize) +{ + int iErr = 0; + int i = 0; + int iRows = 0; + int iCols = 0; + char **pstData = NULL; + char *p = NULL; + + int *piOut = NULL; + int *piOutLen = NULL; + int iOutLen = 0; + + iErr = getAllocatedMatrixOfString(_pvCtx, _piAddr, &iRows, &iCols, &pstData); + if (iErr) + { + return 1; + } + + for (i = 0; i < iRows * iCols; i++) + { + iOutLen += (int)strlen(pstData[i]); + } + + if (iOutLen % 4) + { + iOutLen = iOutLen / (sizeof(int) / sizeof(char)) + 1; + } + else + { + iOutLen = iOutLen / (sizeof(int) / sizeof(char)); + } + + //4 for header and size of each string + iOutLen += 4 + iRows * iCols; + + piOut = (int *)MALLOC(iOutLen * sizeof(int)); + if (piOut == NULL) + { + return 1; + } + + piOut[0] = sci_strings; + piOut[1] = iRows; + piOut[2] = iCols; + piOut[3] = 0; //not complex + + piOutLen = piOut + 4; + + for (i = 0; i < iRows * iCols; i++) + { + piOutLen[i] = (int)strlen(pstData[i]); + } + + p = (char *)(piOut + 4 + iRows * iCols); + for (i = 0; i < iRows * iCols; i++) + { + memcpy(p, pstData[i], piOutLen[i]); + p += piOutLen[i]; + } + + *_piBuffer = piOut; + *_piBufferSize = iOutLen; + + freeAllocatedMatrixOfString(iRows, iCols, pstData); + return 0; +} + +static int serialize_boolean(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize) +{ + SciErr sciErr; + int iRows = 0; + int iCols = 0; + int *piBool = NULL; + int *p = NULL; + + int *piOut = NULL; + int iOutLen = 0; + + sciErr = getMatrixOfBoolean(_pvCtx, _piAddr, &iRows, &iCols, &piBool); + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + //4 for header and 1 for each boolean + iOutLen = 4 + iRows * iCols; + + piOut = (int *)MALLOC(iOutLen * sizeof(int *)); + if (piOut == NULL) + { + return 1; + } + + piOut[0] = sci_boolean; + piOut[1] = iRows; + piOut[2] = iCols; + piOut[3] = 0; //not complex + + p = (int *)(piOut + 4); + memcpy(p, piBool, iRows * iCols * sizeof(int)); + + *_piBuffer = piOut; + *_piBufferSize = iOutLen; + return 0; +} + +static int serialize_int(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize) +{ + SciErr sciErr; + int iPrecision = 0; + int iRows = 0; + int iCols = 0; + int iItemSize = 0; + void *p = NULL; + void *pvData = NULL; + + int *piOut = NULL; + int iOutLen = 0; + + sciErr = getVarDimension(_pvCtx, _piAddr, &iRows, &iCols); + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + sciErr = getMatrixOfIntegerPrecision(_pvCtx, _piAddr, &iPrecision); + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 1; + } + + if (iPrecision == SCI_INT8 || iPrecision == SCI_UINT8) + { + iItemSize = sizeof(char); + } + else if (iPrecision == SCI_INT16 || iPrecision == SCI_UINT16) + { + iItemSize = sizeof(short); + } + else if (iPrecision == SCI_INT32 || iPrecision == SCI_UINT32) + { + iItemSize = sizeof(int); + } + /* + else if(iPrecision == SCI_INT64 || iPrecision == SCI_UINT64) + { + iItemSize = sizeof(long long); + } + */ + //check and adjust alignement on integer + iOutLen = iRows * iCols; + if ((iOutLen * iItemSize) % sizeof(int)) + { + iOutLen = (iOutLen * iItemSize) / sizeof(int) + 1; + } + else + { + iOutLen = (iOutLen * iItemSize) / (sizeof(int)); + } + + iOutLen += 4; + piOut = (int *)MALLOC(iOutLen * sizeof(int *)); + if (piOut == NULL) + { + return 1; + } + + piOut[0] = sci_ints; + piOut[1] = iRows; + piOut[2] = iCols; + piOut[3] = iPrecision; //precision + + switch (iPrecision) + { + case SCI_INT8: + { + sciErr = getMatrixOfInteger8(_pvCtx, _piAddr, &iRows, &iCols, (char **)&pvData); + break; + } + case SCI_UINT8: + { + sciErr = getMatrixOfUnsignedInteger8(_pvCtx, _piAddr, &iRows, &iCols, (unsigned char **)&pvData); + break; + } + case SCI_INT16: + { + sciErr = getMatrixOfInteger16(_pvCtx, _piAddr, &iRows, &iCols, (short **)&pvData); + break; + } + case SCI_UINT16: + { + sciErr = getMatrixOfUnsignedInteger16(_pvCtx, _piAddr, &iRows, &iCols, (unsigned short **)&pvData); + break; + } + case SCI_INT32: + { + sciErr = getMatrixOfInteger32(_pvCtx, _piAddr, &iRows, &iCols, (int **)&pvData); + break; + } + case SCI_UINT32: + { + sciErr = getMatrixOfUnsignedInteger32(_pvCtx, _piAddr, &iRows, &iCols, (unsigned int **)&pvData); + break; + } + /* + case SCI_INT64 : + { + sciErr = getMatrixOfInteger64(_pvCtx, _piAddr, &iRows, &iCols, (long long**)&pvData); + break; + } + case SCI_UINT64 : + { + sciErr = getMatrixOfUnsignedInteger64(_pvCtx, _piAddr, &iRows, &iCols, (unsigned long long**)&pvData); + break; + } + */ default: + FREE(piOut); + return 1; + } + + if (sciErr.iErr) + { + FREE(piOut); + printError(&sciErr, 0); + return 1; + } + + p = piOut + 4; + memcpy(p, pvData, iRows * iCols * iItemSize); + *_piBuffer = piOut; + *_piBufferSize = iOutLen; + return 0; +} + +static int serialize_sparse(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize, BOOL _bData) +{ + int iRet = 0; + int iRows = 0; + int iCols = 0; + int iItemCount = 0; + int *piRowCount = 0; + int *piColPos = 0; + int iComplex = 0; + + double *pdblR = NULL; + double *pdblI = NULL; + + int *piOut = NULL; + int iOutLen = 0; + + if (_bData) + { + //sparse + + iComplex = isVarComplex(_pvCtx, _piAddr); + if (iComplex) + { + iRet = getAllocatedComplexSparseMatrix(_pvCtx, _piAddr, &iRows, &iCols, &iItemCount, &piRowCount, &piColPos, &pdblR, &pdblI); + } + else + { + iRet = getAllocatedSparseMatrix(_pvCtx, _piAddr, &iRows, &iCols, &iItemCount, &piRowCount, &piColPos, &pdblR); + } + } + else + { + //boolean sparse + iRet = getAllocatedBooleanSparseMatrix(_pvCtx, _piAddr, &iRows, &iCols, &iItemCount, &piRowCount, &piColPos); + } + + if (iRet) + { + return 1; + } + + //5 -> 4 for header + 1 for item count + iOutLen = 5 + iRows + iItemCount; + + if (_bData) + { + iOutLen += iItemCount * (iComplex + 1) * sizeof(double) / sizeof(int); + } + + piOut = (int *)MALLOC(iOutLen * sizeof(int)); + + piOut[0] = _bData ? sci_sparse : sci_boolean_sparse; + piOut[1] = iRows; + piOut[2] = iCols; + piOut[3] = iComplex; + piOut[4] = iItemCount; + + memcpy(piOut + 5, piRowCount, iRows * sizeof(int)); + memcpy(piOut + 5 + iRows, piColPos, iItemCount * sizeof(int)); + + if (_bData) + { + int iOne = 1; + double *pRealData = (double *)(piOut + 5 + iRows + iItemCount); + + C2F(dcopy) (&iItemCount, pdblR, &iOne, pRealData, &iOne); + if (iComplex) + { + double *pImgData = pRealData + iItemCount; + + C2F(dcopy) (&iItemCount, pdblI, &iOne, pImgData, &iOne); + } + } + + *_piBuffer = piOut; + *_piBufferSize = iOutLen; + + if (_bData) + { + if (iComplex) + { + freeAllocatedSparseMatrix(piRowCount, piColPos, pdblR); + } + else + { + freeAllocatedComplexSparseMatrix(piRowCount, piColPos, pdblR, pdblI); + } + } + else + { + freeAllocatedBooleanSparse(piRowCount, piColPos); + } + + return 0; +} + +int serialize_to_mpi(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize) +{ + switch (*_piAddr) + { + case sci_matrix: + return serialize_double(pvApiCtx, _piAddr, _piBuffer, _piBufferSize); + break; + case sci_strings: + return serialize_string(pvApiCtx, _piAddr, _piBuffer, _piBufferSize); + break; + case sci_boolean: + return serialize_boolean(pvApiCtx, _piAddr, _piBuffer, _piBufferSize); + break; + case sci_sparse: + return serialize_sparse(pvApiCtx, _piAddr, _piBuffer, _piBufferSize, TRUE); + break; + case sci_boolean_sparse: + return serialize_sparse(pvApiCtx, _piAddr, _piBuffer, _piBufferSize, FALSE); + break; + case sci_ints: + return serialize_int(pvApiCtx, _piAddr, _piBuffer, _piBufferSize); + break; + default: + return -1; + break; + } +}
\ No newline at end of file diff --git a/modules/mpi/src/c/serialization.h b/modules/mpi/src/c/serialization.h new file mode 100755 index 000000000..a42a50ae9 --- /dev/null +++ b/modules/mpi/src/c/serialization.h @@ -0,0 +1,22 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2011-2011 - DIGITEO - Antoine ELIAS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +/** + * Serialize a Scilab variable to mpi data + * + * @param _pvCtx The runtime context + * @param _piBuffer The buffer + * @param _iBufferSize The size of the buffer + * @return 0 in case of success + */ + +int serialize_to_mpi(void *_pvCtx, int *_piAddr, int **_piBuffer, int *_piBufferSize); diff --git a/modules/mpi/tests/unit_tests/mpi_Bcast.tst b/modules/mpi/tests/unit_tests/mpi_Bcast.tst new file mode 100755 index 000000000..5b49ec8fd --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_Bcast.tst @@ -0,0 +1,40 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST 4 --> +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 4); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +a=-1 +if Master + // Declare a + a=42 +end +b=MPI_Bcast(a, 0); +assert_checkequal(b,42); + +a2=-1 + +if Master + // Declare a + a2=[2,2;3,2]; + +end + +b2=MPI_Bcast(a2, 0); +assert_checkequal(b2,[2,2;3,2]); + + +MPI_Finalize(); +exit
\ No newline at end of file diff --git a/modules/mpi/tests/unit_tests/mpi_hello_world.tst b/modules/mpi/tests/unit_tests/mpi_hello_world.tst new file mode 100755 index 000000000..ee55974f0 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_hello_world.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// + +MPI_Init(); +assert_checktrue(MPI_Comm_rank() == 0 | MPI_Comm_rank() == 1); +assert_checkequal(MPI_Comm_size(), 2); + +name = MPI_Get_processor_name(); +assert_checkequal(size(name), [1, 1]); +assert_checktrue(length(name)>0); + +MPI_Finalize(); +exit();
\ No newline at end of file diff --git a/modules/mpi/tests/unit_tests/mpi_init.tst b/modules/mpi/tests/unit_tests/mpi_init.tst new file mode 100755 index 000000000..c8639f619 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_init.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> + +MPI_Init(); + +if MPI_Comm_rank() <> 0 & MPI_Comm_rank() <> 1 then pause, end +assert_checkequal(MPI_Comm_size(), 2); + +if execstr("MPI_Init(1);", "errcatch") <> 77 then pause,end +if execstr("MPI_Comm_rank(1);", "errcatch") <> 77 then pause,end +// if execstr("MPI_Comm_size(1,2);", "errcatch") <> 77 then pause,end + +MPI_Finalize(); +exit() diff --git a/modules/mpi/tests/unit_tests/mpi_isend_double.tst b/modules/mpi/tests/unit_tests/mpi_isend_double.tst new file mode 100755 index 000000000..f81ab9ad5 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_isend_double.tst @@ -0,0 +1,50 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +// This test sends a rand matrix of double complex and, on each slave, +// it adds +1 to each element +// and send it back to the master +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + for slaveId = 1:sizeNodes-1 +// value = rand(100,100) + rand(100,100) * %i; + value = 2 * %i; + MPI_Isend(value, slaveId, 42); + end + + for slaveId = 1:sizeNodes-1 + tag=0; + MPI_Irecv(slaveId, tag, 43); + valueBack=MPI_Wait(43); + assert_checkequal(valueBack,value + 1); + end +else + rankSource=0; + tag=0; + // value= + MPI_Irecv(rankSource, tag, 42); + value=MPI_Wait(42) + value=value+1; + // Isend back to the master + MPI_Isend(value, 0, 43); + +end + +MPI_Finalize(); +exit() + diff --git a/modules/mpi/tests/unit_tests/mpi_isend_double2.tst b/modules/mpi/tests/unit_tests/mpi_isend_double2.tst new file mode 100755 index 000000000..d5e263287 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_isend_double2.tst @@ -0,0 +1,38 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +// This test sends a rand matrix of double complex and, on each slave, +// it adds +1 to each element +// and send it back to the master +// + +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + for slaveId = 1:sizeNodes-1 + value = slaveId*2 + MPI_Isend(value, slaveId, 42); + end +else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); + value=MPI_Wait(42) + assert_checkequal(value,2); +end + +MPI_Finalize(); +exit() diff --git a/modules/mpi/tests/unit_tests/mpi_isend_string.tst b/modules/mpi/tests/unit_tests/mpi_isend_string.tst new file mode 100755 index 000000000..32a4d2042 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_isend_string.tst @@ -0,0 +1,49 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +// This test sends a rand matrix of double complex and, on each slave, +// it adds +1 to each element +// and send it back to the master +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + for slaveId = 1:sizeNodes-1 + value = ["test","of","MPI","!"] + MPI_Isend(value, slaveId, 42); + end + + for slaveId = 1:sizeNodes-1 + tag=0; + MPI_Irecv(slaveId, tag, 43); + valueBack=MPI_Wait(43); + assert_checkequal(size(valueBack), [1,1]); + assert_checkequal(valueBack, strcat(value)) + + end +else + rankSource=0; + tag=0; + MPI_Irecv(rankSource, tag, 42); + value=MPI_Wait(42) + value = strcat(value); + // Isend back to the master + MPI_Isend(value, 0, 43); + +end + +MPI_Finalize(); +exit() diff --git a/modules/mpi/tests/unit_tests/mpi_send_boolean.tst b/modules/mpi/tests/unit_tests/mpi_send_boolean.tst new file mode 100755 index 000000000..e13c63431 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_boolean.tst @@ -0,0 +1,48 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// This test sends a matrix of double [42,41] and, on each slave, +// it adds +1 to each element +// and send it back to the master +// + +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +if MPI_Comm_size() <> 2 then pause, end + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + + for slaveId = 1:sizeNodes-1 + value = rand(100,100) > 0.5; + MPI_Send(value, slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(valueBack, ~value); + end +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + value = ~value; + // Send back to the master + MPI_Send(value,0) + +end + +MPI_Finalize() + +exit() + diff --git a/modules/mpi/tests/unit_tests/mpi_send_boolean_sparse.tst b/modules/mpi/tests/unit_tests/mpi_send_boolean_sparse.tst new file mode 100755 index 000000000..23f5c7548 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_boolean_sparse.tst @@ -0,0 +1,51 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// This test sends a matrix of double [42,41] and, on each slave, +// it adds +1 to each element +// and send it back to the master +// + +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + + for slaveId = 1:sizeNodes-1 + dense=[ %T, %F, %T, %F + %F, %T, %F, %T + %T, %F, %T, %F + %F, %T, %F, %T]; + value = sparse(dense); + MPI_Send(value, slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(valueBack, ~value); + end +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + value = ~value; + + // Send back to the master + MPI_Send(value,0) + +end + +MPI_Finalize() +exit(); diff --git a/modules/mpi/tests/unit_tests/mpi_send_double.tst b/modules/mpi/tests/unit_tests/mpi_send_double.tst new file mode 100755 index 000000000..d51f00c7a --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_double.tst @@ -0,0 +1,45 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +// This test sends a rand matrix of double complex and, on each slave, +// it adds +1 to each element +// and send it back to the master +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + for slaveId = 1:sizeNodes-1 + value = rand(100,100) + rand(100,100) * %i; + MPI_Send(value, slaveId); + end + + for slaveId = 1:sizeNodes-1 + tag=0; + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(valueBack,value + 1); + end +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag); + value=value+1; + // Send back to the master + MPI_Send(value,0); + +end + +MPI_Finalize(); +exit
\ No newline at end of file diff --git a/modules/mpi/tests/unit_tests/mpi_send_double_rand.tst b/modules/mpi/tests/unit_tests/mpi_send_double_rand.tst new file mode 100755 index 000000000..a99b850f6 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_double_rand.tst @@ -0,0 +1,40 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); +lines(0) +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + + for slaveId = 1:sizeNodes-1 + MPI_Send(rand(10,10),slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(size(valueBack),[10,10]) + end +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + value=value+1; + // Send back to the master + MPI_Send(value,0) +end + +MPI_Finalize() +exit(); diff --git a/modules/mpi/tests/unit_tests/mpi_send_int.tst b/modules/mpi/tests/unit_tests/mpi_send_int.tst new file mode 100755 index 000000000..769a7429c --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_int.tst @@ -0,0 +1,44 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// + +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +if MPI_Comm_size() <> 2 then pause, end + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + + for slaveId = 1:sizeNodes-1 + value = int8(rand(100,100) * 100); + MPI_Send(value, slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(valueBack, value + 1); + end +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + value = value + 1; + // Send back to the master + MPI_Send(value,0) + +end + +MPI_Finalize() +exit() + diff --git a/modules/mpi/tests/unit_tests/mpi_send_int8.tst b/modules/mpi/tests/unit_tests/mpi_send_int8.tst new file mode 100755 index 000000000..37b61f7c7 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_int8.tst @@ -0,0 +1,42 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + + for slaveId = 1:sizeNodes-1 + MPI_Send(int8([42,41]),slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(valueBack(1), int8(43)); + assert_checkequal(valueBack(2), int8(42)); + end +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + value=value+1; + // Send back to the master + MPI_Send(value,0) + +end + +MPI_Finalize() +exit(); diff --git a/modules/mpi/tests/unit_tests/mpi_send_sparse.tst b/modules/mpi/tests/unit_tests/mpi_send_sparse.tst new file mode 100755 index 000000000..f06f2a1b3 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_sparse.tst @@ -0,0 +1,46 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010-2010 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + for slaveId = 1:sizeNodes-1 + value = sprand(100, 100, 0.01) + sprand(100, 100, 0.01) * %i; + MPI_Send(value, slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + [ij,v,mn]=spget(value); + value = sparse(ij,v+1+%i,mn); + assert_checkequal(size(valueBack),size(value)); + // Cannot check the values. See bug #10119 + end + +else + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + [ij,v,mn]=spget(value); + value = sparse(ij,v+1+%i,mn); + // Send back to the master + MPI_Send(value,0) + +end + +MPI_Finalize() +exit(); diff --git a/modules/mpi/tests/unit_tests/mpi_send_string.tst b/modules/mpi/tests/unit_tests/mpi_send_string.tst new file mode 100755 index 000000000..7ff7299e2 --- /dev/null +++ b/modules/mpi/tests/unit_tests/mpi_send_string.tst @@ -0,0 +1,45 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Sylvestre LEDRU +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- MPI TEST --> +// + +MPI_Init(); +rnk = MPI_Comm_rank(); +sizeNodes = MPI_Comm_size(); + +assert_checkequal(MPI_Comm_size(), 2); + +SLV = rnk; // handy shortcuts, master is rank 0 +Master = ~ SLV; // slaves are all other + +if Master + + disp("MASTER: We have "+string(sizeNodes) + " processors") + for slaveId = 1:sizeNodes-1 + value = ["test","of","MPI","!"] + MPI_Send(value, slaveId) + end + + for slaveId = 1:sizeNodes-1 + tag=0 + valueBack=MPI_Recv(slaveId, tag); + assert_checkequal(size(valueBack), [1,1]); + assert_checkequal(valueBack, strcat(value)) + end +else + disp("SLAVE: Processor "+string(rnk)) + rankSource=0; + tag=0; + value=MPI_Recv(rankSource, tag) + value = strcat(value); + // Send back to the master + MPI_Send(value,0) +end + +MPI_Finalize() +exit();
\ No newline at end of file |