2023-10-03: Ver. 0.5-1 * Fix warnings related to gcc-13 and lang-13. 2023-09-09: Ver. 0.5-0 * Alter system environment variables "TMPDIR" to where R tempdir() is such as "Rtmp..." since newer OpenMPI dumps some temporary directories and files to "TMPDIR" (or "-mca orte_tmpdir_base") when it runs. * Add ".pbd_env$MPI.TYPE" in the initial function .mpiopt_init() to export the "mpi.type" with default "OPENMPIxi"'. 2023-09-03: Ver. 0.5-0 * Remove meta data from man. * Put vignette pdf back. * Modify CITATION. 2023-08-31: Ver. 0.5-0 * Managed RNG streams now use comm.set.seed() and comm.set.stream() for resource-independent (rank and core) guaranteed reproducibility * Added capability in comm.chunk() can set up managed RNG streams * Unmanaged RNG now defaults to R/base: likely different streams but not guaranteed * Imports L'Ecuyer-CMRG from `parallel` package instead of `rlecuyer` * demo/seed.r replaced with demo/seed_rank.r and demo/seed_vec.r * Various documentation updates 2022-11-20: Ver. 0.4-7 * Some doc and minor code changes. 2022-08-06: Ver. 0.4-6 * comm.chunk() function added for more data chunking options. * Replace class() with inherits() for "try-error". * Modify "appveyor.yml". * Fix "strict-prototype" warnings. 2022-03-10: Ver. 0.4-6 * Fixed "info" interaction with slurm functions on some HPC systems. * Rename global variables by adding "global_spmd_" to variables that may be potentially affected. 2022-03-07: Ver. 0.4-5 * Initialize/free some fake info and avoid MPI_INFO_NULL. 2021-11-05: Ver. 0.4-4 * Update autoconf to 2.71. 2020-01-26: Ver. 0.4-3 * Change "execmpi()" to finalize current mpi first. 2019-12-01: Ver. 0.4-2 * Fix multiple definition warnings due to "-fno-common" as default in gcc-10. 2019-11-21: Ver. 0.4-1 * Remove "00LOCK-pbdMPI/00new/" from Makeconf generated by Makevars.win for 64bit MS-MPI library only. 2019-11-17: Ver. 0.4-0 * Fix `isend()` by adding `spmd.check.type.send()` which is needed by `recv()` for handshaking. 2019-05-07: Ver. 0.4-0 * Fix check type for send/recv long vectors. 2019-04-07: Ver. 0.4-0 * Add "inst/mpi_valgrind" for checking and comparing memory lost, etc. 2019-02-23: Ver. 0.3-9 * Add IBM MPI support for Summit supercomputer. 2019-01-20: Ver. 0.3-9 * Migrate float32 class to float package via import in NAMESPACE. * Export `get.conf()`, `get.lib()`, and `get.sysenv()`. 2018-09-21: Ver. 0.3-9 * Adjust "get.mpi.comm.ptr()" and "addr.mpi.comm.ptr()" and their C codes. * Add a test example "inst/tests/mpi_comm_ptr.r". 2018-08-22: Ver. 0.3-9 * Fix examples and add man helps for the new "send()" and "recv()". 2018-08-21: Ver. 0.3-9 * Add more "check.type()" for flexible "send()" and "recv()". * Change examples in "inst/" to force "check.type" as FALSE wherever "send/recv" and "isend/irecv" are involved. 2018-08-12: Ver. 0.3-9 * Add "get.mpi.comm.ptr()" and "addr.mpi.comm.ptr()" to get MPI_COMM pointers. * Add C combine R example in "inst/". * Add more flexible "send()" and "recv()". 2018-08-03: Ver. 0.3-8 * Fedora28 use "module load mpi/openmpi-x86_64" to obtain mpiexec. * Roll back partially to Ver. 0.3-6 because pkg-config may give linking order differently that may trigger some dynamic loading problems. 2018-07-29: Ver. 0.3-7 * Add "pkg-config" to "configure.ac". * Check "OpenMPI" and "MPICH2" with "pkg-config". 2018-05-18: Ver. 0.3-6 * Move "rlecuyer" to Imports. 2018-04-30: Ver. 0.3-6 * Change some problems related UTF-8, latin1 TeX inputs, especially for TeXLive 2018. 2018-02-25: Ver. 0.3-5 * Fix execmpi(). * system(wait = FALSE) doesn't work with MPI correctly in Unix-alike systems. * Execute MPI in background and dump the results to the log file. * Read the results back in from the log file when the job is complete. * Windows system can not do the background job, but wait = TRUE is fine. 2018-02-17: Ver. 0.3-5 * Add execmpi(). 2017-12-12: Ver. 0.3-4 * Added comm.localrank(). 2017-12-02: Ver. 0.3-4 * Fix a "spmd.gatherv_array()" bug. 2017-11-16: Ver. 0.3-4 * Added "spmd.allreduce.float()" and "spmd.reduce.float()". 2017-09-24: Ver. 0.3-4 * Fix man help regarding "task.pull()". 2017-07-04: Ver. 0.3-4 * Fix a finalize bug in "spmd.finalize()" C code. 2016-12-17: Ver. 0.3-3 * Change web address. 2016-10-08: Ver. 0.3-3 * Add .travis.yml. 2016-09-25: Ver. 0.3-3 * Change to "https://cran.r-project.org/...". 2016-07-17: Ver. 0.3-3 * Improve Makevars.win for both MS-MPI HPC package and SDK package. 2016-07-14: Ver. 0.3-2 * Use Rtools34. * Use MS-MPI v7.1.12437 published on 06/22/2016. 2016-01-27: Ver. 0.3-2 * Drop initialization of .pbd_env. * Migrate to R-3.3.* and R-3.4.*. * Use Rtools33. 2015-12-30: Ver. 0.3-1 * Drop pbdCS temporarily. 2015-12-19: Ver. 0.3-1 * Add pbd_opt(). 2015-11-03: Ver. 0.3-0 * Simplify global options. 2015-10-24: Ver. 0.3-0 * Change to common environment, but this will create masking, overwritting, and texting problems when other pbdR pacakges are loading. * Change again to .pbd_env, .mpiopt_set(), .mpiopt_get(), and .mpiopt_init() with huge options rewritting. 2015-10-22: Ver. 0.3-0 * Fix comm.set.seed problem. 2015-10-17: Ver. 0.3-0 * Drop "data/envir.r". 2015-09-05: Ver. 0.3-0 * Check with ZMQ and CS. * Rename global Env again. 2015-08-30: Ver. 0.3-0 * Reversion to 0.3. * Change option controlling method. Move from data to new.env. 2015-08-16: Ver. 0.2-6 * Add barrier to task.pull, pbdLapply, pbdSapply, and pbdApply. 2015-08-10: Ver. 0.2-6 * Add alltoall and alltoallv, example, manual. 2015-07-21: Ver. 0.2-6 * Modify Description. * Hide spmd_comm_spawn if MPI2 is not defined (needed for impi). 2015-07-03: Ver. 0.2-6 * Check autoloaded MPI symbol for mac. * Change NAMESPACE for --as-cran. * Change zzz.r.in for dyn.load() using local=FALSE. 2015-05-30: Ver. 0.2-6 * Register comm.sort in S3method. * Modify Description. 2014-03-20: Ver. 0.2-6 * Add bcast message. 2014-12-07: Ver. 0.2-6 * Merge R_CallMethodDef for speeding up dynload problems. 2014-10-19: Ver. 0.2-6 * Add is.finalized() for the CS problem. 2014-10-02: Ver. 0.2-5 * Fix no visible binding for global variable problem. 2014-09-xx: Ver. 0.2-5 * Implement two stages allreduce and allgather. 2014-08-23: Ver. 0.2-5 * Add vignettes FAQ solution for MacOS 10.9.4, OpenMPI 1.8.1 and R 3.1.1. 2014-07-28: Ver. 0.2-5 * Add comm.split.by.node(). * Add comm.within and comm.between. 2014-06-30: Ver. 0.2-5 * Add divide.job.vector() and divide.job.list(). * Add LD_LIB_PATH to configure.ac and zzz.r.in. 2014-06-21: Ver. 0.2-5 * Drop jss.cls and jss.bst. 2014-05-27: Ver. 0.2-4 * Change to MPI_Comm_set_errhandler(). * Fix Makevars.win logic. 2014-05-24: Ver. 0.2-3 * Start official migration to MS-MPI. 2014-05-10: Ver. 0.2-3 * Add logical and bit-wise AND, OR, XOR to allreduce() and reduce(). * Improve comm.allcommon(). 2014-05-04: Ver. 0.2-3 * Add comm.as.gbd(), comm.pairwise(), and comm.dist(). * The isend() non-blocking problems solved via buffering. 2014-04-01: Ver. 0.2-3 * Fix a bcast() bug of unbalance call stack by switching to spmd.bcast.default for vectors of integer and double. 2014-03-22: Ver. 0.2-3 * Adjust configure.ac and Makeconf for pbdSSLAP. 2014-03-11: Ver. 0.2-3 * Add try options to task.pull(). 2014-01-28: Ver. 0.2-3 * Fix bcast() bugs. * Fix spmd.scatter.array() bugs. * Fix seed problem again. 2014-01-25: Ver. 0.2-2 * Add comm.read.table(), comm.read.csv(), and comm.read.csv2(), and man pages and a section to vignettes. * Fix get.jid() option. * Fix bugs in comm.write.csv() and comm.write.csv2(). 2014-01-20: Ver. 0.2-2 * More tests on downstream pbdR package with MS-MPI. 2014-01-12: Ver. 0.2-2 * Add Prof. Brian Ripley's trick to MS-MPI's 64bits support. * Move system requirements from MPICH2 to MS-MPI as Windows standard MPI. 2014-01-05: Ver. 0.2-2 * Add Intel Miscrosoft HPC Pack 2012 (MS-MPI) support. * Add FreeBSD support suggested by Christian Heckendorf. * Fix seed problems. 2013-12-03: Ver. 0.2-2 * Add Intel MPI support. 2013-12-01: Ver. 0.2-2 * Add comm.range(), comm.max(), and comm.min(). * Add comm.which(), comm.which.max(), and comm.which.min(). * Add comm.length(), comm.sum(), comm.mean(), comm.var(), and comm.sd(). 2013-11-26: Ver. 0.2-2 * Disable seg. fault of overloading .RData and .RHistory. 2013-11-02: Ver. 0.2-2 * Fix some bugs and add gathering for task.pull(), pbdLapply(), and pbdSapply(). * Add comm.Rprof(). 2013-10-02: Ver. 0.2-2 * Add comm.write(), comm.write.table(), comm.rite.csv(), and comm.write.csv2(). * Add comm.split(), intercomm.merge() and intercomm.create(). 2013-09-21: Ver. 0.2-1 * Fix pbdPROF configure problem. 2013-09-14: Ver. 0.2-1 * Add Comm_connect, Comm_accept, Open_port, Close_port, Publish_name, Unpublish_name, and Lookup_name. * Add Client/Server examples. 2013-09-03: Ver. 0.2-1 * Simply replace LENGTH by XLENGTH does not solve the longer vector problem. Follow R/src/main/memory.c to support longer vectors since int is 32-bit for both of i386 and x86_64 systems. * Add MPI_PROC_NULL to sendrecv() and sendrecv.replace(). 2013-08-01: Ver. 0.2-1 * Fix i.lib problem in "R/zzz.r.in". * Remove --with-Rmpi-* from configure.ac. * Add MPICH for MPICH version 3 or later. * Replace LENGTH by XLENGTH in all src/*.c to support longer vectors. 2013-07-24: Ver. 0.2-0 * Move fpmpi to pbdPROF and link with it's static library. * Add mpiP and TAU. * Move pbdDEMO::timer() to pbdMPI::comm.timer(). 2013-07-05: Ver. 0.1-9 (unreleased and merged to Ver. 0.2-0) * Change spmd.isend.default() to blocking send. 2013-07-03: Ver. 0.1-8 * Move inst/doc/vignettes/ to vignettes/. * Add fpmpi license. 2013-07-02: Ver. 0.1-7 * Fix man page. * Fix pbdApply. * Add messages to interactive mode. * Drop some barrier in comm.print and comm.cat. * Add FAQ to vignette. * Add fpmpi. * Add task pull parallelism. * Move vignettes. 2013-03-24: Ver. 0.1-6 * License changed. * Add "block0" to get.jid and fix its bug. * Add FPMPI for profiling. 2013-03-11: Ver. 0.1-5 * Add and fix comm.stop and comm.warning. * Add set.seed in .onLoad to give a default set. * Fix symbol.rds problem. 2013-01-17: Ver. 0.1-4 * Add control to comm.print and comm.cat. * Fix .Last.lib problem. * Fix comm.all and comm.any na.rm bug. 2012-12-13: Ver. 0.1-3 * Fix Mac OSX dynamic loading problem. * Fix .GlobalEnv problem. * Fix multi-arch problem. * Add copyright to vignette. 2012-10-30: Ver. 0.1-2 * Add comm.all and comm.any, and rename g.sort to comm.sort. 2012-10-02: Ver. 0.1-1 * Make changes for Nautilus. Drop "pbdMPI:::* ideas" for other pbd packages. * Make changes for pbdSLAP, pbdBASE, and pbdDMAT. * Add seed functions. * Add global sorting functions. * Modify configure.ac and Makevars.in for Solaris and pbdSLAP, pbdBASE, and pbdDMAT. ======================= Log Before Release ===================================== 2012-09-01: * Rename to 'pbdMPI'. * Add 'apply'-alike functions. * Adjust "Makevars.win". 2012-08-11: * Convert configure.ac back to Rmpi's version. * Add "mpicc --showme" for OpenMPI and "mpicc -show" for MPICH2 in configure.ac to automatically detect header files and shared library. * Rewrite HPSC website. 2012-07-28: * Rewrite configure.ac. * MPICH2 is working on Windows 32/64bit. (OpenMPI 1.6 64bit can not run.) 2012-07-07: * Minor adjustments for RmpiBLACS. * Change major support to OpenMPI. 2012-06-25: * Write vignette. * Build binaries for Windows with OpenMPI and MPICH2. 2012-06-06: * Write examples and codes for performance test. * Add methods for array/matrix types. 2012-05-17: * Build RmpiSPMD preliminary. * Rewrite all C and R codes. * Build in S4 methods. * Move Master/Workers to RmpiMW. 2012-05-15: * First try for Master/Workers. * Build Rmpi2 preliminary. * Try S3 methods. * New remote exec/cmds by sending text strings. 2012-03-21: * First try for Rmpi_0.6-0. * First try for Rmpi2. * Add controls for MPI pointers. 2011-10-xx: * First try for Master/Slaves in Rmpi.