84 Commits

Autor SHA1 Mensagem Data
Hui Zhou 9c48a130ad test: fix typos related to testlist.collalgo 2024-08-12 16:17:50 -05:00
Lisandro Dalcin 3d2682d6df misc: add to .gitignore src/mpi/romio/include/romio_abi_internal.h
This is produced by maint/gen_abi.py
2024-01-17 21:51:38 +03:00
Hui Zhou 8ca9ebd26c misc: move mpif90model.h.in to src/include
We need to add the include dir of the both srcdir tree and builddir tree
to AM_CPPFLAGS if the header files is generated. Rather than inflate
AM_CPPFLAGS, move mpif90model.h.in to src/include since it is already in
AM_CPPFLAGS.
2023-12-18 16:00:38 -06:00
Hui Zhou cafa7be9f1 ABI: add gen_abi.py
Then internal code need deal with both the types from ABI header and the
actual types used by MPICH. Generate mpi_abi_internal.h from mpi_abi.h
by renaming all MPI_ typenames into ABI_ prefix. Generate mpi_abi_util.c
to initialize an internal table for builtin datatypes and ops
conversions.

Generates:
    src/binding/abi/mpi_abi_internal.h
    src/binding/abi/mpi_abi_util.c
2023-12-12 22:42:43 -06:00
Hui Zhou cf6e5db967 misc: add to .gitignore src/binding/c/c_binding.c
This is produced by maint/gen_binding_c.py.
2023-10-30 13:49:29 -05:00
Ken Raffenetti b78242cc38 examples: Add cudapi example code
Add a port of cpi.c to CUDA. Use a GPU kernel to compute the partial
areas at each process, then sum them with a final MPI_Reduce from device
memory into CPU memory. This is intended to be used as smoke test for
functioning GPU support.
2023-01-24 16:14:43 -06:00
Hui Zhou e1b921d5f1 pmi: generate and use pmi_msg
Include pmi_msg.c in Makefile and include pmi_msg.h.
2022-09-28 15:37:13 -05:00
Yanfei Guo 2419ba222b Adding generated files to ignore list 2022-09-06 15:08:53 -05:00
Hui Zhou a40c62ee95 pm: remove hydra2
At this point it is clear that we are going to keep developing hydra
rather than fixing the missing features in hydra2.
2022-07-20 08:47:44 -05:00
Hui Zhou f588fc4ce6 hydra: fix hwloc paths and move them to modules dir
It is unnecessary to put embedded library to deep nested paths. Put them
all in modules dir, similar to how mpich does it.

The hwloc path was previously broken when we rearranged the source tree.
It didn't show in our testing because by default, we reuse the hwloc
compiled by main mpich.
2022-07-13 14:18:19 -05:00
Hui Zhou 06ece5683f maint: hard code maint/cvardirs.in in extractcvars
Practically one would never need to run extractcvars with different
source directories. Hard code the directory list in the extractcvars
script, simplify a few unnecessary steps.
2022-06-17 17:23:13 -05:00
Hui Zhou c0c480fa8e maint: remove autoconf substitution from extractcvars
The script only need substitute @abs_srcdir@. Since practically we only
run the script from mpich top directory during autogen, let's remove the
extra autoconf step.

This is similar to many autogen scripts, e.g. the binding generation
scripts, which always assumes running from top directory.
2022-06-17 17:23:13 -05:00
Hui Zhou 3957f9da4f misc: update configure help text on cross files
The error message is out-of-date. Update it with instruction on using
the new script maint/gen_cross.pl.
2022-03-18 12:26:44 -05:00
Hui Zhou 5d4c2b76fc hydra: move main hydra source into mpiexec folder
Rather than searching for the main hydra code, move the main code into
mpiexec folder and flatten its directory layout.

There was a --with-hydr-ui configure option that were designed to build
different versions of mpiexec. This design seems never panned out.
Remove the option for now.
2022-02-18 14:53:33 -06:00
Hui Zhou 9ee4f392c7 f90: add mpi.f90
This file is simple enough that doesn't need be generated from script.
2022-02-04 17:32:45 -06:00
Hui Zhou 495baab430 fortran: use maint/gen_binding_f77.py in autogen 2021-10-25 13:11:34 -05:00
Hui Zhou ca9afa20dc fortran: separate use_mpi/Makefile.mk from buildiface
There is no benefit to use script to generate the Makefile since it just
prints out the content verbosely.
2021-10-14 16:27:22 -05:00
Hui Zhou b1083a94ba fortran: remove use_mpi_f08/Makefile.mk from gitignore
We neglected to remove the entry since we separated the makefile for
use_mpi_f08.
2021-10-14 16:27:22 -05:00
Hui Zhou ea4191c417 fortran: remove MAINTAINER_MODE for buildiface
The interface generation are carried out in autogen stage and it is easy
to simply re-run the script if necessary. The MAINTAINER_MODE adds
complexity without much benefit. And it is fragile as we make changes to
the generation mechanism. Remove for now.
2021-10-14 16:27:22 -05:00
Hui Zhou 71761c8614 fortran: manually maintain mpif_h/Makefile.mk
Move the stable part of Makefile to static file so we don't need rely
on the script to understand the build logic.
2021-10-14 16:27:22 -05:00
Hui Zhou 5d6dd9b4e9 fortran: manually maintain statusc2f.c and statusf2c.c
These two functions are not fortran bindings. It is much easier to
directly maintain them.

TODO: generate these fortran related C bindings with
maint/gen_binding_c.py.
2021-10-14 16:27:22 -05:00
Hui Zhou f5eff2a83c maint: remove scripts related the function logging states 2021-08-18 09:50:38 -05:00
Hui Zhou cb10cbbc1e misc: fix typos in .gitignore
coll_algos.h was misspelled.
2021-06-29 17:42:40 -05:00
Hui Zhou 091cf5194d coll: auto-generate collective algorithm prototypes
Generate src/mpi/coll/include/coll_algos.h and include in mpir_coll.h.
2021-06-23 12:05:04 -05:00
Hui Zhou 84d7e297cc coll: autogen top-level collective code
Removes src/mpi/coll/allgather/allgather.c,
src/mpi/coll/allgather/allgather_init.c,
and src/mpi/coll/iallgather/iallgather.c etc.

Run /maint/gen_coll.py in autogen.sh.
2021-06-23 12:05:04 -05:00
Hui Zhou b99b457345 test: use static gpu testlist
GPU tests have big latency during initialization -- several seconds and
worse with more processes and devices. Therefore having generating many
small tests makes the overall gpu testing time impractically long.

The solution is to run more gpu tests inside a single test. Since the
benefit of script generation is lost in this case, it is easier to just
directly use a static testlist.gpu.

NOTE: the amount of gputests currently is incomplete. I'll add more as I
keep tuning the tests.
2021-04-05 11:23:22 -05:00
Wesley Bland 0114d254d7 qmpi: Add QMPI Support 2021-03-17 12:39:20 -05:00
Hui Zhou f386386954 misc: remove rlog
We have not been using rlog for quite a while. With the newer MPI Tool
facility and events interface, it is very unlikely to have renewed
interest in rlog. Thus, removing it from source tree.
2021-03-10 10:23:17 -06:00
Hui Zhou 5d70b9e167 maint: remove generation of state_names.h
Remove generation of src/util/logging/common/state_names.h in
maint/extractstates.in. The header file is only needed by rlog, which
has been broken and haven't been in use for a while. It is very unlikely
that we will ever need review rlog again.
2021-03-10 10:23:17 -06:00
Hui Zhou 8f01ddd152 fortran: simplify fortran proxy for attribute callbacks
Instead of generate these proxy functions by buildiface script, split
them into separate c code.

There is no real difference between three diffrent versions of proxy
functions (comm, type, win), merge them to simplify the code.

The old f08 code uses proxy function in Fortran. However, the
call-by-value interface in Fortran is not consistently supported by
gfortran or ifort. Since we need cross the C/Fortran boundary at one
point anyway, having the proxy function in C is much simpler. This
commit let f08 binding to use the same f90 proxy interface.
2021-03-01 16:51:05 -06:00
Hui Zhou 669e9087ad python: add routine to generate mpi_f08_types.f90 2021-03-01 16:51:05 -06:00
Hui Zhou caf8e1894e f08: move mpi_c_interface_types.f90.in out of buildiface
This file is just a straight print in Perl script, we might as well
directly maintain it.
2021-03-01 16:51:05 -06:00
Hui Zhou b7635c854a misc: add files generated by gen_binding_f08.py to .gitignore 2021-03-01 16:51:05 -06:00
Yanfei Guo 6d849c8867 ignore generated files
add new C binding files, CH4 interfaces and test to gitignore
2021-02-18 01:22:04 -06:00
Yanfei Guo 32c6440027 gitignore: add autogenerated C binding files 2020-12-23 15:21:08 -06:00
Yanfei Guo 438475f110 add GPU testlist to gitignore 2020-11-11 10:42:24 -06:00
Hui Zhou 7838e035a9 general: remove reference of OpenPA
Now that atomics usages are completely replaced with MPL atomcis, we no
longer need configure and link with openpa.
2020-06-02 17:23:59 -05:00
Pavan Balaji 3f86e45e8d csel: new collective selection infrastructure
The new infrastructure allows selection logic to be specified as json
files, instead of being hardcoded in the C files.  A generic json file
is provided, which is converted to a C string and used internally if
no external json file is specified.
2020-03-02 16:11:13 -06:00
Mohamad Chaarawi 99171c1b6d address some review comments:
- remove build from .gitignore
- use GEN coll functions

Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-12-06 16:03:56 -06:00
Mohamad Chaarawi 2dfc5ae38c Add DAOS ADIO driver to ROMIO
Signed-off-by: Mohamad Chaarawi <mohamad.chaarawi@intel.com>
2019-12-06 16:03:56 -06:00
Yanfei Guo 29f4e422f6 update gitignore for new generate files. 2019-09-25 17:00:07 -05:00
Ken Raffenetti 14c0630158 gitignore: Add opa's copy of confdb 2019-06-27 15:02:27 -05:00
Ken Raffenetti 11a6ba9287 gitignore: Move ch4 file to more specific .gitignore
No reviewer.
2018-12-17 16:21:54 -06:00
Ken Raffenetti 9fb48c0abe maint: Remove unused script
This functionality is moved to the testsuite.

Co-authored-by: Gilles Gouaillardet <gilles@rist.or.jp>

Signed-off-by: Giuseppe Congiu <gcongiu@anl.gov>
2018-10-12 16:28:02 -05:00
Pavan Balaji 6d6bd4d050 hydra2: New process manager
This commit includes a mostly ground-up rewrite of Hydra. The new code
uses better abstractions, more scalable data structures, and more
efficient internal communication. Support for hierarchical launches is
added for improved startup times on large numbers of nodes. This code
should be considered experimental. It may change drastically, and will
likely be renamed.

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
2018-08-02 12:51:45 -05:00
Wesley Bland 1773703b81 ch4/shm: Allow non-direct builds
Make changes to the structure of the CH4 shared memory modules to allow
non-direct builds (where the shared memory module code is inlined
"directly" into the MPI-level code). This makes the "glue" code (now
just called `src`) required and makes the POSIX code required as well
(in fact, it's not used directly in the CH4-level code in places).

This simplifies the autoconf code since we will always assume that the
`shm/src` code will be the starting point for shared memory calls. In
the future, when we have multiple submodules in shared memory that can
be built together, we will probably need to reintroduce some of the
autoconf magic within the shared memory code itself (instead of at the
CH4 layer).

This assumes that the decision to inline will always happen at the CH4
layer (and not inside the shared memory code itself). When we have
multiple shared memory modules in the future, they should all be inlined
underneath the shared memory code (if they will be inlined at all).

Signed-off-by: Min Si <msi@anl.gov>
Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
2018-05-07 14:42:39 -05:00
Wesley Bland f7afc1ce01 maint: Add pre-commit hook to repository
Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
2018-02-15 16:59:46 -06:00
Yanfei Guo 84f21c7608 Ignore the copied hwloc in hydra.
Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
2017-11-20 16:44:46 -06:00
Ken Raffenetti 659ab34a56 Revert "confdb: converted confdb to a submodule"
This reverts commit 90df0966fb.

Signed-off-by: Yanfei Guo <yguo@anl.gov>
2017-11-08 10:28:21 -06:00
Ken Raffenetti 966ccda797 Revert "hydra: converted hydra to a submodule."
This reverts commit a7ac6e8d7a.

Signed-off-by: Yanfei Guo <yguo@anl.gov>
2017-11-08 10:28:21 -06:00