From curtisbr at mvapich.cse.ohio-state.edu Tue Jul 1 10:48:31 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Tue Jul 1 10:48:37 2008 Subject: [mvapich-commit] r2812 - mvapich2/trunk Message-ID: <200807011448.m61EmV01012961@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-01 10:48:30 -0400 (Tue, 01 Jul 2008) New Revision: 2812 Removed: mvapich2/trunk/www/ Log: Remove generated files. From huangwei at mvapich.cse.ohio-state.edu Wed Jul 2 14:16:43 2008 From: huangwei at mvapich.cse.ohio-state.edu (huangwei@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 14:16:56 2008 Subject: [mvapich-commit] r2814 - mvapich2/trunk Message-ID: <200807021816.m62IGhsW025671@mvapich.cse.ohio-state.edu> Author: huangwei Date: 2008-07-02 14:16:42 -0400 (Wed, 02 Jul 2008) New Revision: 2814 Modified: mvapich2/trunk/CHANGELOG Log: Update changelog Modified: mvapich2/trunk/CHANGELOG =================================================================== --- mvapich2/trunk/CHANGELOG 2008-07-01 19:49:43 UTC (rev 2813) +++ mvapich2/trunk/CHANGELOG 2008-07-02 18:16:42 UTC (rev 2814) @@ -3,8 +3,42 @@ This file briefly describes the changes to the MVAPICH2 software package. The logs are arranged in the "most recent first" order. -MVAPICH2-1.1.0 (mm/dd/08) +MVAPICH2-1.2 (07/02/08) +* Following features are added for this new mvapich2-1.2 release: + + - Based on MPICH2 1.0.7 + + - Scalable and robust daemon-less job startup + + -- Enhanced and robust mpirun_rsh framework (non-MPD-based) to + provide scalable job launching on multi-thousand core clusters + + -- Available for OpenFabrics (IB and iWARP) and uDAPL interfaces + (including Solaris) + + - Adding support for intra-node shared memory communication with Checkpoint-restart + + -- Allows best performance and scalability with fault-tolerance + support + + - Enhancement to software installation + + -- Change to full autoconf-based configuration + -- Adding an application (mpiname) for querying the MVAPICH2 library + version and configuration information + + - Enhanced processor affinity using PLPA for multi-core architectures + + - Allows user-defined flexible processor affinity + + - Enhanced scalability for RDMA-based direct one-sided communication + with less communication resource + + - Shared memory optimized MPI_Bcast operations + + - Optimized and tuned MPI_Alltoall + Changes contributed by MPICH2: * Support for STI Cell Broadband Engine * Added datatype free hooks to be used by devices independently. From huangwei at mvapich.cse.ohio-state.edu Wed Jul 2 14:46:11 2008 From: huangwei at mvapich.cse.ohio-state.edu (huangwei@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 14:46:20 2008 Subject: [mvapich-commit] r2815 - mvapich2/trunk Message-ID: <200807021846.m62IkBC7008944@mvapich.cse.ohio-state.edu> Author: huangwei Date: 2008-07-02 14:46:11 -0400 (Wed, 02 Jul 2008) New Revision: 2815 Added: mvapich2/trunk/CHANGELOG_MPICH2 Modified: mvapich2/trunk/CHANGELOG Log: Separate out CHANGELOGs from mpich2 and mvapich2 Modified: mvapich2/trunk/CHANGELOG =================================================================== --- mvapich2/trunk/CHANGELOG 2008-07-02 18:16:42 UTC (rev 2814) +++ mvapich2/trunk/CHANGELOG 2008-07-02 18:46:11 UTC (rev 2815) @@ -39,38 +39,6 @@ - Optimized and tuned MPI_Alltoall -Changes contributed by MPICH2: -* Support for STI Cell Broadband Engine -* Added datatype free hooks to be used by devices independently. -* Added device-specific timer support. -* Enabled -O2 and equivalent compiler optimizations for supported compilers by default (including GNU, Intel, Portland, Sun, Absoft, IBM). -* make uninstall works cleanly now, except for MPD installations. -* Updates to the ch3:nemesis channel including preliminary support for thread safety. -* MPI_Comm_create works for intercommunicators. -* Performance improvements for derived datatypes (including packing and communication) through in-built loop-unrolling and buffer alignment. -* Performance improvements for MPI_Gather when non-power-of-two processes are used, and when a non-zero ranked root is performing the gather. -* Preliminary support for dynamic loading of ch3 channels (sock, ssm, shm). -* Singleton init now works with the MPD process manager. -* Fixes in MPD related to MPI-2 connect-accept. -* Improved support for MPI-2 generalized requests that allows true nonblocking I/O in ROMIO. -* MPE Changes: - - Updated MPE logging API so that it is thread-safe (through global mutex). Updated all related documentation, e.g. man pages. - - Added infrastructure to piggyback argument data to MPI states. - - Enabled thread-safe MPI logging through global mutex. - - Enhanced Jumpshot to be more thread friendly and added simple statistics in the Legend windows. - - Added backtrace support to MPE on Solaris and glibc based systems, e.g. Linux. This improves the output error message from the Collective/Datatype checking library. - - Fixed the CLOG2 format so it can be used in serial (non-MPI) logging. -* PMI Changes: - - Added support to use PMI Clique functionality for process managers that support it. -* ROMIO Changes: - - Support to take hints from a config file - - More tests and bug fixes for nonblocking I/O -* SCTP: - - Added MPICH_SCTP_NAGLE_ON support. -* SMPD Changes: - - Singleton Init support. - - MVAPICH2-1.0.2 (02/20/08) * Change the default MV2_DAPL_PROVIDER to OpenIB-cma Added: mvapich2/trunk/CHANGELOG_MPICH2 =================================================================== --- mvapich2/trunk/CHANGELOG_MPICH2 2008-07-02 18:16:42 UTC (rev 2814) +++ mvapich2/trunk/CHANGELOG_MPICH2 2008-07-02 18:46:11 UTC (rev 2815) @@ -0,0 +1,848 @@ +=============================================================================== + Changes in 1.0.7 +=============================================================================== + +- OVERALL: Initial ROMIO device for BlueGene/P (the ADI device is also +added but is not configurable at this time). + +- OVERALL: Major clean up for the propagation of user-defined and +other MPICH2 flags throughout the code. + +- OVERALL: Support for STI Cell Broadband Engine. + +- OVERALL: Added datatype free hooks to be used by devices +independently. + +- OVERALL: Added device-specific timer support. + +- OVERALL: make uninstall works cleanly now. + +- ROMIO: Support to take hints from a config file + +- ROMIO: more tests and bug fixes for nonblocking I/O + +- PM/PMI: Added support to use PMI Clique functionality for process +managers that support it. + +- PM/PMI: Added SLURM support to configure to make it transparent to +users. + +- PM/PMI: SMPD Singleton Init support. + +- WINDOWS: Fortran 90 support added. + +- SCTP: Added MPICH_SCTP_NAGLE_ON support. + +- MPE: Updated MPE logging API so that it is thread-safe (through +global mutex). + +- MPE: Added infrastructure to piggyback argument data to MPI states. + +- DOCS: Documentation creation now works correctly for VPATH builds. + +- Many other bug fixes, memory leak fixes and code cleanup. A full +list of changes is available using: + svn log -r100:HEAD https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release/MPICH2_1_0_7 + + +=============================================================================== + Changes in 1.0.6 +=============================================================================== + +- Updates to the ch3:nemesis channel including preliminary support for +thread safety. + +- Preliminary support for dynamic loading of ch3 channels (sock, ssm, +shm). See the README file for details. + +- Singleton init now works with the MPD process manager. + +- Fixes in MPD related to MPI-2 connect-accept. + +- Improved support for MPI-2 generalized requests that allows true +nonblocking I/O in ROMIO. + +- MPE changes: + * Enabled thread-safe MPI logging through global mutex. + * Enhanced Jumpshot to be more thread friendly + + added simple statistics in the Legend windows. + * Added backtrace support to MPE on Solaris and glibc based systems, + e.g. Linux. This improves the output error message from the + Collective/Datatype checking library. + * Fixed the CLOG2 format so it can be used in serial (non-MPI) logging. + +- Performance improvements for derived datatypes (including packing +and communication) through in-built loop-unrolling and buffer +alignment. + +- Performance improvements for MPI_Gather when non-power-of-two +processes are used, and when a non-zero ranked root is performing the +gather. + +- MPI_Comm_create works for intercommunicators. + +- Enabled -O2 and equivalent compiler optimizations for supported +compilers by default (including GNU, Intel, Portland, Sun, Absoft, +IBM). + +- Many other bug fixes, memory leak fixes and code cleanup. A full +list of changes is available at +www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_6changes.htm. + + +=============================================================================== + Changes in 1.0.5 +=============================================================================== + +- An SCTP channel has been added to the CH3 device. This was + implemented by Brad Penoff and Mike Tsai, Univ. of British Columbia. + Their group's webpage is located at http://www.cs.ubc.ca/labs/dsg/mpi-sctp/ . + +- Bugs related to dynamic processes have been fixed. + +- Performance-related fixes have been added to derived datatypes and + collective communication. + +- Updates to the Nemesis channel + +- Fixes to thread safety for the ch3:sock channel + +- Many other bug fixes and code cleanup. A full list of changes is available + at www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_5changes.htm . + + +=============================================================================== + Changes in 1.0.4 +=============================================================================== + +- For the ch3:sock channel, the default build of MPICH2 supports + thread safety. A separate build is not needed as before. However, + thread safety is enabled only if the user calls MPI_Init_thread with + MPI_THREAD_MULTIPLE. If not, no thread locks are called, so there + is no penalty. + +- A new low-latency channel called Nemesis has been added. It can be + selected by specifying the option --with-device=ch3:nemesis. + Nemesis uses shared memory for intranode communication and various + networks for internode communication. Currently available networks + are TCP, GM and MX. Nemesis is still a work in progress. See the + README for more information about the channel. + +- Support has been added for providing message queues to debuggers. + Configure with --enable-debuginfo to make this information available. + This is still a "beta" test version and has not been extensively tested. + +- For systems with firewalls, the environment variable MPICH_PORT_RANGE can + be used to restrict the range of ports used by MPICH2. See the documentation + for more details. + +- Withdrew obsolete modules, including the ib and rdma communication layers. + For Infiniband and MPICH2, please see + http://nowlab.cse.ohio-state.edu/projects/mpi-iba/ + For other interconnects, please contact us at mpich2-maint@mcs.anl.gov . + +- Numerous bug fixes and code cleanup. A full list of changes is available + at www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_4changes.htm . + +- Numerous new tests in the MPICH2 test suite. + +- For developers, the way in which information is passed between the top + level configure and configures in the device, process management, and + related modules has been cleaned up. See the comments at the beginning + of the top-level configure.in for details. This change makes it easier + to interface other modules to MPICH2. + + +=============================================================================== + Changes in 1.0.3 +=============================================================================== + +- There are major changes to the ch3 device implementation. Old and + unsupported channels (essm, rdma) have been removed. The + internal interface between ch3 and the channels has been improved to + similify the process of adding a new channel (sharing existing code + where possible) and to improve performance. Further changes in this + internal interface are expected. + +- Numerous bug fixes and code cleanup + + Creation of intercommunicators and intracommunicators + from the intercommunicators created with Spawn and Connect/Accept + + The computation of the alignment and padding of items within + structures now handles additional cases, including systems + where the alignment an padding depends on the type of the first + item in the structure + + MPD recognizes wdir info keyword + + gforker's mpiexec supports -env and -genv arguments for controlling + which environment variables are delivered to created processes + +- While not a bug, to aid in the use of memory trace packages, MPICH2 + tries to free all allocated data no later than when MPI_Finalize + returns. + +- Support for DESTDIR in install targets + +- Enhancements to SMPD + +- In order to support special compiler flags for users that may be + different from those used to build MPICH2, the environment variables + MPI_CFLAGS, MPI_FFLAGS, MPI_CXXFLAGS, and MPI_F90FLAGS may be used + to specify the flags used in mpicc, mpif77, mpicxx, and mpif90 + respectively. The flags CFLAGS, FFLAGS, CXXFLAGS, and F90FLAGS are + used in the building of MPICH2. + +- Many enhancements to MPE + +- Enhanced support for features and idiosyncracies of Fortran 77 and + Fortran 90 compilers, including gfortran, g95, and xlf + +- Enhanced support for C++ compilers that do not fully support abstract + base classes + +- Additional tests in the mpich2/tests/mpi + +- New FAQ included (also available at + http://www.mcs.anl.gov/mpi/mpich2/faq.htm) + +- Man pages for mpiexec and mpif90 + +- Enhancements for developers, including a more flexible and general + mechanism for inserting logging and information messages, controlable + with --mpich-dbg-xxx command line arguments or MPICH_DBG_XXX environment + variables. + +- Note to developers: + This release contains many changes to the structure of the CH3 + device implementation (in src/mpid/ch3), including signficant + reworking of the files (many files have been combined into fewer files + representing logical grouping of functions). The next release of + MPICH2 will contain even more significant changes to the device + structure as we introduce a new communication implementation. + +=============================================================================== + Changes in 1.0.2 +=============================================================================== + +- Optimizations to the MPI-2 one-sided communication functions for the + sshm (scalable shared memory) channel when window memory is + allocated with MPI_Alloc_mem (for all three synchronization methods). + +- Numerous bug fixes and code cleanup. + +- Fixed memory leaks. + +- Fixed shared library builds. + +- Fixed performance problems with MPI_Type_create_subarray/darray + +- The following changes have been made to MPE2: + + - MPE2 now builds the MPI collective and datatype checking library + by default. + + - SLOG-2 format has been upgraded to 2.0.6 which supports event drawables + and provides count of real drawables in preview drawables. + + - new slog2 tools, slog2filter and slog2updater, which both are logfile + format convertors. slog2filter removes undesirable categories of + drawables as well as alters the slog2 file structure. slog2updater + is a slog2filter that reads in older logfile format, 2.0.5, and + writes out the latest format 2.0.6. + +- The following changes have been made to MPD: + + - Nearly all code has been replaced by new code that follows a more + object-oriented approach than before. This has not changed any + fundamental behavior or interfaces. + + - There is info support in spawn and spawn_multiple for providing + parts of the environment for spawned processes such as search-path + and current working directory. See the Standard for the required + fields. + + - mpdcheck has been enhanced to help users debug their cluster and + network configurations. + + - CPickle has replaced marshal as the source module for dumps and loads. + + - The mpigdb command has been replaced by mpiexec -gdb. + + - Alternate interfaces can be used. See the Installer's Guide. + + +=============================================================================== + Changes in 1.0.1 +=============================================================================== + +- Copyright statements have been added to all code files, clearly identifying + that all code in the distribution is covered by the extremely flexible + copyright described in the COPYRIGHT file. + +- The MPICH2 test suite (mpich2/test) can now be run against any MPI + implementation, not just MPICH2. + +- The send and receive socket buffers sizes may now be changed by setting + MPICH_SOCKET_BUFFER_SIZE. Note: the operating system may impose a maximum + socket buffer size that prohibits MPICH2 from increasing the buffers to the + desire size. To raise the maximum allowable buffer size, please contact your + system administrator. + +- Error handling throughout the MPI routines has been improved. The error + handling in some internal routines has been simplified as well, making the + routines easier to read. + +- MPE (Jumpshot and CLOG logging) is now supported on Microsoft Windows. + +- C applications built for Microsoft Windows may select the desired channels at + runtime. + +- A program not started with mpiexec may become an MPI program by calling + MPI_Init. It will have an MPI_COMM_WORLD of size one. It may then call + other MPI routines, including MPI_COMM_SPAWN, to become a truly parallel + program. At present, the use of MPI_COMM_SPAWN and MPI_COMM_SPAWN_MULTIPLE + by such a process is only supported by the MPD process manager. + +- Memory leaks in communicator allocation and the C++ binding have been fixed. + +- Following GNU guidelines, the parts of the install step that checked the + installation have been moved to an installcheck target. Much of the + installation now supports the DESTDIR prefix. + +- Microsoft Visual Studio projects have been added to make it possible to build + x86-64 version + +- Problems with compilers and linkers that do not support weak symbols, which + are used to support the PMPI profiling interface, have been corrected. + +- Handling of Fortran 77 and Fortran 90 compilers has been improved, including + support for g95. + +- The Fortran stdcall interface on Microsoft Windows now supports character*. + +- A bug in the OS X implementation of poll() caused the sock channel to hang. + A workaround has been put in place. + +- Problems with installation under OS/X are now detected and corrected. + (Install breaks libraries that are more than 10 seconds old!) + +- The following changes have been made to MPD: + + - Sending a SIGINT to mpiexec/mpdrun, such as by typing control-C, now causes + SIGINT to be sent to the processes within the job. Previously, SIGKILL was + sent to the processes, preventing applications from catching the signal + and performing their own signal processing. + + - The process for merging output has been improved. + + - A new option, -ifhn, has been added to the machine file, allowing the user + to select the destination interface to be used for TCP communication. See + the User's Manual for details. + + - The user may now select, via the "-s" option to mpiexec/mpdrun, which + processes receive input through stdin. stdin is immediately closed for all + processes not in set receiving input. This prevents processes not in the + set from hanging should they attempt to read from stdin. + + - The MPICH2 Installer's Guide now contains an appendix on troubleshooting + problems with MPD. + +- The following changes have been made to SMPD: + + - On Windows machines, passwordless authentication (via SSPI) can now be used + to start processes on machines within a domain. This feature is a recent + addition, and should be considered experimental. + + - On Windows machines, the -localroot option was added to mpiexec, allowing + processes on the local machines to perform GUI operations on the local + desktop. + + - On Windows machines, network drive mapping is now supported via the -map + option to mpiexec. + + - Three new GUI tools have been added for Microsoft Windows. These tools are + wrappers to the command line tools, mpiexec.exe and smpd.exe. wmpiexec + allows the user to run a job much in the way they with mpiexec. wmpiconfig + provides a means of setting various global options to the SMPD process + manager environment. wmpiregister encrypts the user's credentials and + saves them to the Windows Registry. + +- The following changes have been made to MPE2: + + - MPE2 no longer attempt to compile or link code during 'make install' to + validate the installation. Instead, 'make installcheck' may now be used to + verify that the MPE installation. + + - MPE2 now supports DESTDIR. + +- The sock channel now has preliminary support for MPI_THREAD_SERIALIZED and + MPI_THREAD_MULTIPLE on both UNIX and Microsoft Windows. We have performed + rudimentary testing; and while overall the results were very positive, known + issues do exist. ROMIO in particular experiences hangs in several places. + We plan to correct that in the next release. As always, please report any + difficulties you encounter. + +- Another channel capable of communicating with both over sockets and shared + memory has been added. Unlike the ssm channel which waits for new data to + arrive by continuously polling the system in a busy loop, the essm channel + waits by blocking on an operating system event object. This channel is + experimental, and is only available for Microsoft Windows. + +- The topology routines have been modified to allow the device to override the + default implementation. This allows the device to export knowledge of the + underlying physical topology to the MPI routines (Dims_create and the + reorder == true cases in Cart_create and Graph_create). + +- New memory allocation macros, MPIU_CHK[PL]MEM_*(), have been added to help + prevent memory leaks. See mpich2/src/include/mpimem.h. + +- New error reporting macros, MPIU_ERR_*, have been added to simplify the error + handling throughout the code, making the code easier to read. See + mpich2/src/include/mpierrs.h. + +- Interprocess communication using the Sock interface (sock and ssm channels) + may now be bound to a particular destination interface using the environment + variable MPICH_INTERFACE_HOSTNAME. The variable needs to be set for each + process for which the destination interface is not the default interface. + (Other mechanisms for destination interface selection will be provided in + future releases.) Both MPD and SMPD provide a more simplistic mechanism for + specifying the interface. See the user documentation. + +- Too many bug fixes to describe. Much thanks goes to the users who reported + bugs. Their patience and understanding as we attempted to recreate the + problems and solve them is greatly appreciated. + + +=============================================================================== + Changes in 1.0 +=============================================================================== + +- MPICH2 now works on Solaris. + +- The User's Guide has been expanded considerably. The Installation Guide has + been expanded some as well. + +- MPI_COMM_JOIN has been implemented; although like the other dynamic process + routines, it is only supported by the Sock channel. + +- MPI_COMM_CONNECT and MPI_COMM_ACCEPT are now allowed to connect with remote + process to which they are already connected. + +- Shared libraries can now be built (and used) on IA32 Linux with the GNU + compilers (--enable-sharedlibs=gcc), and on Solaris with the native Sun + Workshop compilers (--enable-sharedlibs=solaris). They may also work on + other operating systems with GCC, but that has not been tested. Previous + restrictions disallowing C++ and Fortran bindings when building shared + libraries have been removed. + +- The dataloop and datatype contents code has been improved to address + alignment issues on all platforms. + +- A bug in the datatype code, which handled zero block length cases + incorrectly, has been fixed. + +- An segmentation fault in the datatype memory management, resulting from + freeing memory twice, has been fixed. + +- The following changes were made to the MPD process manager: + + - MPI_SPAWN_MULTIPLE now works with MPD. + + - The arguments to the 'mpiexec' command supplied by the MPD have changed. + First, the -default option has been removed. Second, more flexible ways to + pass environment variables have been added. + + - The commands 'mpdcheck' and 'testconfig' have been to installations using + MPD. These commands test the setup of the machines on which you wish to + run MPICH2 jobs. They help to identify misconfiguration, firewall issues, + and other communication problems. + + - Support for MPI_APPNUM and MPI_UNIVERSE_SIZE has been added to the Simple + implementation of PMI and the MPD process manager. + + - In general, error detection and recovery in MPD has improved. + +- A new process manager, gforker, is now available. Like the forker process + manager, gforker spawns processes using fork(), and thus is quite useful on + SMPs machines. However, unlike forker, gforker supports all of the features + of a standard mpiexec, plus some. Therefore, It should be used in place of + the previous forker process manager, which is now deprecated. + +- The following changes were made to ROMIO: + + - The amount of duplicated ROMIO code in the close, resize, preallocate, + read, write, asynchronous I/O, and sync routines has been substantially + reduced. + + - A bug in flattening code, triggered by nested datatypes, has been fixed. + + - Some small memory leaks have been fixed. + + - The error handling has been abstracted allowing different MPI + implementations to handle and report error conditions in their own way. + Using this abstraction, the error handling routines have been made + consistent with rest of MPICH2. + + - AIO support has been cleaned up and unified. It now works correctly on + Linux, and is properly detected on old versions of AIX. + + - A bug in MPI_File_seek code, and underlying support code, has been fixed. + + - Support for PVFS2 has improved. + + - Several dead file systems have been removed. Others, including HFS, SFS, + PIOFS, and Paragon, have been deprecated. + +- MPE and CLOG have been updated to version 2.1. For more details, please see + src/mpe2/README. + +- New macros for memory management were added to support function local + allocations (alloca), to rollback pending allocations when error conditions + are detected to avoid memory leaks, and to improve the conciseness of code + performing memory allocations. + +- New error handling macros were added to make internal error handling code + more concise. + +=============================================================================== + Changes in 0.971 +=============================================================================== + +- Code restricted by copyrights less flexible than the one described in the + COPYRIGHT file has been removed. + +- Installation and User Guides have been added. + +- The SMPD PMI Wire Protocol Reference Manual has been updated. + +- To eliminate portability problems, common blocks in mpif.h that spanned + multiple lines were broken up into multiple common blocks each described on a + single line. + +- A new command, mpich2version, was added to allow the user to obtain + information about the MPICH2 installation. This command is currently a + simple shell script. We anticipate that the mpich2version command will + eventually provide additional information such as the patches applied and the + date of the release. + +- The following changes were made to MPD2: + + - Support was added for MPI's "singleton init", in which a single + process started in the normal way (i.e., not by mpiexec or mpirun) + becomes an MPI process with an MPI_COMM_WORLD of size one by + calling MPI_Init. After this the process can call other MPI + functions, including MPI_Comm_spawn. + + - The format for some of the arguments to mpiexec have changed, + especially for passing environment variables to MPI processes. + + - In addition to miscellaneous hardening, better error checking and + messages have been added. + + - The install process has been improved. In particular, configure + has been updated to check for a working install program and supply + it's own installation script (install.sh) if necessary. + + - A new program, mpdcheck, has been added to help diagnose machine + configurations that might be erroneous or at least confusing to + mpd. + + - Runtime version checking has been added to insure that the Simple + implementation of PMI linked into the application and the MPD + process manager being used to run that application are compatible. + + - Minor improvements have been made to mpdboot. + + - Support for the (now deprecated) BNR interface has been added to + allow MPICH1 programs to also be run via MPD2. + +- Shared libraries are now supported on Linux systems using the GNU compilers + with the caveat that C++ support must be disabled (--disable-cxx). + +- The CH3 interface and device now provide a mechanism for using RDMA (remote + direct memory access) to transfer data between processes. + +- Logging capabilities for MPI and internal routines have been readded. See + the documentation in doc/logging for details. + +- A "meminit" option was added to --enable-g to force all bytes associated with + a structure or union to be initialized prior to use. This prevents programs + like Valgrind from complaining about uninitialized accesses. + +- The dist-with-version and snap targets in the top-level Makefile.sm now + properly produce mpich2-/maint/Version instead of mpich2-/Version. + In addition, they now properly update the VERSION variable in Makefile.sm + without clobbering the sed line that performs the update. + +- The dist and snap targets in the top-level Makefile.sm now both use the + dist-with-version target to avoid inconsistencies. + +- The following changes were made to simplemake: + + - The environment variables DEBUG, DEBUG_DIRS, and DEBUG_CONFDIR can now be + used to control debugging output. + + - Many fixes were made to make simplemake so that it would run cleanly with + perl -w. + + - Installation of *all* files from a directory is now possible (example, + installing all of the man pages). + + - The clean targets now remove the cache files produced by newer versions of + autoconf. + + - For files that are created by configure, the determination of the + location of that configure has been improved, so that make of those + files (e.g., make Makefile) is more likely to work. There is still + more to do here. + + - Short loops over subdirectories are now unrolled. + + - The maintainerclean target has been renamed to maintainer-clean to match + GNU guidelines. + + - The distclean and maintainer-clean targets have been improved. + + - An option was added to perform one ar command per directory instead of one + per file when creating the profiling version of routines (needed only for + systems that do not support weak symbols). + + +=============================================================================== + Changes in 0.97 +=============================================================================== + +- MPI-2 one-sided communication has been implemented in the CH3 device. + +- mpigdb works as a simple parallel debugger for MPI programs started + with mpd. New since MPICH1 is the ability to attach to running + parallel programs. See the README in mpich2/src/pm/mpd for details. + +- MPI_Type_create_darray() and MPI_Type_create_subarray() implemented including + the right contents and envelope data. + +- ROMIO flattening code now supports subarray and darray combiners. + +- Improve scalability and performance of some ROMIO PVFS and PVFS2 routines + +- An error message string parameter was added to MPID_Abort(). If the + parameter is non-NULL this string will be used as the message with the abort + output. Otherwise, the output message will be base on the error message + associated with the mpi_errno parameter. + +- MPID_Segment_init() now takes an additional boolean parameter that specifies + if the segment processing code is to produce/consume homogeneous (FALSE) or + heterogeneous (TRUE) data. + +- The definitions of MPID_VCR and MPID_VCRT are now defined by the device. + +- The semantics of MPID_Progress_{Start,Wait,End}() have changed. A typical + blocking progress loop now looks like the following. + + if (req->cc != 0) + { + MPID_Progress_state progress_state; + + MPID_Progress_start(&progress_state); + while (req->cc != 0) + { + mpi_errno = MPID_Progress_wait(&progress_state); + if (mpi_errno != MPI_SUCCESS) + { + /* --BEGIN ERROR HANDLING-- */ + MPID_Progress_end(&progress_state); + goto fn_fail; + /* --END ERROR HANDLING-- */ + } + } + MPID_Progress_end(&progress_state); + } + + NOTE: each of these routines now takes a single parameter, a pointer to a + thread local state variable. + +- The CH3 device and interface have been modified to better support + MPI_COMM_{SPAWN,SPAWN_MULTIPLE,CONNECT,ACCEPT,DISCONNECT}. Channels + writers will notice the following. (This is still a work in progress. See + the note below.) + + - The introduction of a process group object (MPIDI_PG_t) and a new + set of routines to manipulate that object. + + - The renaming of the MPIDI_VC object to MPIDI_VC_t to make it more + consistent with the naming of other objects in the device. + + - The process group information in the MPIDI_VC_t moved from the channel + specific portion to the device layer. + + - MPIDI_CH3_Connection_terminate() was added to the CH3 interface to allow + the channel to properly shutdown a connection before the device deletes all + associated data structures. + + - A new upcall routine, MPIDI_CH3_Handle_connection(), was added to allow the + device to notify the device when a connection related event has completed. + A present the only event is MPIDI_CH3_VC_EVENT_TERMINATED, which notify the + device that the underlying connection associated with a VC has been + properly shutdown. For every call to MPIDI_CH3_Connection_terminate() that + the device makes, the channel must make a corresponding upcall to + MPIDI_CH3_Handle_connection(). MPID_Finalize() will likely hang if this + rule is not followed. + + - MPIDI_CH3_Get_parent_port() was added to provide MPID_Init() with the port + name of the the parent (spawner). This port name is used by MPID_Init() + and MPID_Comm_connect() to create an intercommunicator between the parent + (spawner) and child (spawnee). Eventually, MPID_Comm_spawn_multiple() will + be update to perform the reverse logic; however, the logic is presently + still in the sock channel. + + Note: the changes noted are relatively fresh and are the beginning to a set + of future changes. The goal is to minimize the amount of code required by a + channel to support MPI dynamic process functionality. As such, portions of + the device will change dramatically in a future release. A few more changes + to the CH3 interface are also quite likely. + +- MPIDI_CH3_{iRead,iWrite}() have been removed from the CH3 interface. + MPIDI_CH3U_Handle_recv_pkt() now returns a receive request with a populated + iovec to receive data associated with the request. + MPIDU_CH3U_Handle_{recv,send}_req() reload the iovec in the request and + return and set the complete argument to TRUE if more data is to read or + written. If data transfer for the request is complete, the complete argument + must be set to FALSE. + + +=============================================================================== + Changes in 0.96p2 +=============================================================================== + +The shm and ssm channels have been added back into the distribution. +Officially, these channels are supported only on x86 platforms using the gcc +compiler. The necessary assembly instructions to guarantee proper ordering of +memory operations are lacking for other platforms and compilers. That said, we +have seen a high success rate when testing these channels on unsupported +systems. + +This patch release also includes a new unsupported channel. The scalable +shared memory, or sshm, channel is similar to the shm channel except that it +allocates shared memory communication queues only when necessary instead of +preallocating N-squared queues. + + +=============================================================================== + Changes in 0.96p1 +=============================================================================== + +This patch release fixes a problem with building MPICH2 on Microsoft Windows +platforms. It also corrects a serious bug in the poll implementation of the +Sock interface. + + +=============================================================================== + Changes in 0.96 +=============================================================================== + +The 0.96 distribution is largely a bug fix release. In addition to the many +bug fixes, major improvements have been made to the code that supports the +dynamic process management routines (MPI_Comm_{connect,accept,spawn,...}()). +Additional changes are still required to support MPI_Comm_disconnect(). + +We also added an experimental (and thus completely unsupported) rdma device. +The internal interface is similar to the CH3 interface except that it contains +a couple of extra routines to inform the device about data transfers using the +rendezvous protocol. The channel can use this extra information to pin memory +and perform a zero-copy transfer. If all goes well, the results will be rolled +back into the CH3 device. + +Due to last minute difficulties, this release does not contain the shm or ssm +channels. These channels will be included in a subsequent patch release. + + +=============================================================================== + Changes in 0.94 +=============================================================================== + +Active target one-sided communication is now available for the ch3:sock +channel. This new functionality has undergone some correctness testing but has +not been optimized in terms of performance. Future release will include +performance enhancements, passive target communication, and availability in +channels other than just ch3:sock. + +The shared memory channel (ch3:shm), which performs communication using shared +memory on a single machine, is now complete and has been extensively tested. +At present, this channel only supports IA32 based machines (excluding the +Pentium Pro which has a memory ordering bug). In addition, this channel must +be compiled with gcc. Future releases with support additional architectures +and compilers. + +A new channel has been added that performs inter-node communication using +sockets (TCP/IP) and intra-node communication using shared memory. This +channel, ch3:ssm, is ideal for clusters of SMPs. Like the shared memory +channel (ch3:shm), this channel only supports IA32 based machines and must be +compiled with gcc. In future releases, the ch3:ssm channel will support +additional architectures and compilers. + +The two channels that perform commutation using shared memory, ch3:shm and +ch3:ssm, now support the allocation of shared memory using both the POSIX and +System V interfaces. The POSIX interface will be used if available; otherwise, +the System V interface is used. + +In the interest of increasing portability, many enhancements have been made to +both the code and the configure scripts. + +And, as always, many bugs have been fixed :-). + + +***** INTERFACE CHANGES **** + +The parameters to MPID_Abort() have changed. MPID_Abort() now takes a pointer +to communicator object, an MPI error code, and an exit code. + +MPIDI_CH3_Progress() has been split into two functions: + MPIDI_CH3_Progress_wait() and MPIDI_CH3_Progress_test(). + + +=============================================================================== + Changes in 0.93 +=============================================================================== + +Version 0.93 has undergone extensive changes to provide better error reporting. +Part of these changes involved modifications to the ADI3 and CH3 interfaces. +The following routines now return MPI error codes: + +MPID_Cancel_send() +MPID_Cancel_recv() +MPID_Progress_poke() +MPID_Progress_test() +MPID_Progress_wait() +MPIDI_CH3_Cancel_send() +MPIDI_CH3_Progress() +MPIDI_CH3_Progress_poke() +MPIDI_CH3_iRead() +MPIDI_CH3_iSend() +MPIDI_CH3_iSendv() +MPIDI_CH3_iStartmsg() +MPIDI_CH3_iStartmsgv() +MPIDI_CH3_iWrite() +MPIDI_CH3U_Handle_recv_pkt() +MPIDI_CH3U_Handle_recv_req() +MPIDI_CH3U_Handle_send_req() + +******************************************************************************* +Of special note are MPID_Progress_test(), MPID_Progress_wait() and +MPIDI_CH3_Progress() which previously returned an integer value indicating if +one or more requests had completed. They no longer return this value and +instead return an MPI error code (also an integer). The implication being that +while the semantics changed, the type signatures did not. +******************************************************************************* + +The function used to create error codes, MPIR_Err_create_code(), has also +changed. It now takes additional parameters, allowing it create a stack of +errors and making it possible for the reporting function to indicate in which +function and on which line the error occurred. It also allows an error to be +designated as fatal or recoverable. Fatal errors always result in program +termination regardless of the error handler installed by the application. + +A RDMA channel has been added and includes communication methods for shared +memory and shmem. This is recent development and the RDMA interface is still +in flux. From perkinjo at mvapich.cse.ohio-state.edu Wed Jul 2 15:24:19 2008 From: perkinjo at mvapich.cse.ohio-state.edu (perkinjo@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 15:24:24 2008 Subject: [mvapich-commit] r2816 - mvapich2/trunk Message-ID: <200807021924.m62JOJ2h009064@mvapich.cse.ohio-state.edu> Author: perkinjo Date: 2008-07-02 15:24:18 -0400 (Wed, 02 Jul 2008) New Revision: 2816 Modified: mvapich2/trunk/INSTALL Log: Correct some formatting issues. Modified: mvapich2/trunk/INSTALL =================================================================== --- mvapich2/trunk/INSTALL 2008-07-02 18:46:11 UTC (rev 2815) +++ mvapich2/trunk/INSTALL 2008-07-02 19:24:18 UTC (rev 2816) @@ -22,12 +22,12 @@ The MVAPICH2 installation process is designed to enable the most widely utilized features on the target build OS by default. Supported operating systems include -Linux and Solaris. The default interface is OpenFabrics IB/iWARP on Linux and uDAPL -on Solaris. uDAPL and TCP/IP devices can also be explicitly selected on Linux. -The installation section provides generic instructions for building from a Tarball -or our latest sources. Please see the subsection for the device you are targeting -for specific configuration instructions. If you have questions, please contact us -at mvapich-discuss@cse.ohio-state.edu. +Linux and Solaris. The default interface is OpenFabrics IB/iWARP on Linux and +uDAPL on Solaris. uDAPL and TCP/IP devices can also be explicitly selected on +Linux. The installation section provides generic instructions for building from +a Tarball or our latest sources. Please see the subsection for the device you +are targeting for specific configuration instructions. If you have questions, +please contact us at mvapich-discuss@cse.ohio-state.edu. For more detailed installation instructions, please consult the user guide at: @@ -44,21 +44,22 @@ * autoconf 2.59 or later (not required if building from a tarball) * A C compiler (gcc, icc, etc.) -* Python 2.2 or later (required only if building the MPD process management system) +* Python 2.2 or later (required only if building the MPD process management + system) -MVAPICH2 also depends on various third-party libraries -depending on the configuration being installed: +MVAPICH2 also depends on various third-party libraries depending on the +configuration being installed: OpenFabrics IB/iWARP: - These libraries come packaged with the OpenFabrics Enterprise Edition, - which can be downloaded from the following location: http://openfabrics.org/ + These libraries come packaged with the OpenFabrics Enterprise Edition, which + can be downloaded from the following location: http://openfabrics.org/ * libibumad (REQUIRED) * libibverbs (REQUIRED) * librdmacm (REQUIRED for support of RDMA CM) - If you are planning to use checkpoint/restart support you must have the - BLCR package installed: + If you are planning to use checkpoint/restart support you must have the BLCR + package installed: http://ftg.lbl.gov/CheckpointRestart/CheckpointRestart.shtml * libcr (REQUIRED for Checkpoint/Restart) @@ -81,14 +82,15 @@ $ make $ make install + C. Building the Latest Source ----------------------------- -These instructions assume you have already installed subversion (SVN) and checked -out a working copy of MVAPICH2 -- either the latest trunk code or some branch or tag -(http://mvapich.ohio-state.edu/download/mvapich2/). You also need to have already -installed whatever prerequisites that version of MVAPICH2 requires (the ./configure -step should complain if you have not.) +These instructions assume you have already installed subversion (SVN) and +checked out a working copy of MVAPICH2 -- either the latest trunk code or some +branch or tag (http://mvapich.ohio-state.edu/download/mvapich2/). You also need +to have already installed whatever prerequisites that version of MVAPICH2 +requires (the ./configure step should complain if you have not.) Start the process by updating files in the source tree: @@ -108,11 +110,12 @@ $ make $ make install + D. OpenFabrics IB/iWARP ----------------------- -OpenFabrics IB/iWARP is the default interface on Linux. It can be explicitly selected -by configuring with: +OpenFabrics IB/iWARP is the default interface on Linux. It can be explicitly +selected by configuring with: --with-rdma=gen2 @@ -136,11 +139,12 @@ For more detailed instructions, please consult the user guide. + E. uDAPL -------- -The uDAPL interface is the default on Solaris. It can be explicitly selected on both Solaris -and Linux by configuring with: +The uDAPL interface is the default on Solaris. It can be explicitly selected on +both Solaris and Linux by configuring with: --with-rdma=udapl @@ -159,7 +163,8 @@ /etc/dat.conf on Linux /etc/dat/dat.conf on Solaris -* DAPL version 1.2. You can specify DAPL 2.0 with: --with-dapl-version=2.0 on Linux +* DAPL version 1.2. + On Linux you can specify DAPL 2.0 with: --with-dapl-version=2.0 * I/O Bus type: PCI Express (PCI_EX) Override with: --with-io-bus=type @@ -183,6 +188,7 @@ For more detailed instructions, please consult the user guide. + F. TCP/IP --------- From curtisbr at mvapich.cse.ohio-state.edu Wed Jul 2 17:23:55 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 17:24:02 2008 Subject: [mvapich-commit] r2819 - in mvapich2/trunk: . maint Message-ID: <200807022123.m62LNtj7009404@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-02 17:23:55 -0400 (Wed, 02 Jul 2008) New Revision: 2819 Modified: mvapich2/trunk/configure.in mvapich2/trunk/maint/release.pl Log: Modified MPICH2 release script for use by MVAPICH2 and change release date text for unofficial builds (builds not originating from OSU). Modified: mvapich2/trunk/configure.in =================================================================== --- mvapich2/trunk/configure.in 2008-07-02 21:05:20 UTC (rev 2818) +++ mvapich2/trunk/configure.in 2008-07-02 21:23:55 UTC (rev 2819) @@ -121,7 +121,10 @@ if test -s "$srcdir/maint/ReleaseDate" ; then RELEASE_DATE="`cat $srcdir/maint/ReleaseDate`" else - RELEASE_DATE="Unknown, built on `date`" +dnl <_OSU_MVAPICH_> +dnl RELEASE_DATE="Unknown, built on `date`" + RELEASE_DATE="Unofficial Build" +dnl fi AC_SUBST(RELEASE_DATE) Modified: mvapich2/trunk/maint/release.pl =================================================================== --- mvapich2/trunk/maint/release.pl 2008-07-02 21:05:20 UTC (rev 2818) +++ mvapich2/trunk/maint/release.pl 2008-07-02 21:23:55 UTC (rev 2819) @@ -16,7 +16,10 @@ sub usage { - print "Usage: $0 [--source source] {--package package} [version]\n"; +# <_OSU_MVAPICH_> +# print "Usage: $0 [--source source] {--package package} [version]\n"; + print "Usage: $0 [--source source] [version]\n"; +# exit; } @@ -66,20 +69,31 @@ } } -sub create_mpich2 +sub create_mvapich2 { # Check out the appropriate source - debug("===> Checking out mpich2 SVN source... "); - run_cmd("rm -rf mpich2-${version}"); - run_cmd("svn export -q ${source} mpich2-${version}"); + debug("===> Checking out mvapich2 SVN source... "); +# <_OSU_MVAPICH_> +# run_cmd("rm -rf mpich2-${version}"); +# run_cmd("svn export -q ${source} mpich2-${version}"); + run_cmd("rm -rf ${version}"); + run_cmd("svn export -q ${source} ${version}"); +# debug("done\n"); # Remove packages that are not being released debug("===> Removing packages that are not being released... "); - chdir("${root}/mpich2-${version}"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}"); + chdir("${root}/${version}"); + run_cmd("date +%F > maint/ReleaseDate"); +# run_cmd("rm -rf src/mpid/globus doc/notes src/pm/mpd/Zeroconf.py src/mpid/ch3/channels/gasnet src/mpid/ch3/channels/sshm src/pmi/simple2"); - chdir("${root}/mpich2-${version}/src/mpid/ch3/channels/nemesis/nemesis/net_mod"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}/src/mpid/ch3/channels/nemesis/nemesis/net_mod"); + chdir("${root}/${version}/src/mpid/ch3/channels/nemesis/nemesis/net_mod"); +# my @nem_modules = qw(newtcp sctp ib psm); run_cmd("rm -rf ".join(' ', map({$_ . "_module/*"} @nem_modules))); for my $module (@nem_modules) { @@ -90,117 +104,156 @@ # Create configure debug("===> Creating configure in the main package... "); - chdir("${root}/mpich2-${version}"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}"); + chdir("${root}/${version}"); +# run_cmd("./maint/updatefiles"); debug("done\n"); # Remove unnecessary files debug("===> Removing unnecessary files in the main package... "); - chdir("${root}/mpich2-${version}"); - run_cmd("rm -rf README.vin maint/config.log maint/config.status unusederr.txt autom4te.cache src/mpe2/src/slog2sdk/doc/jumpshot-4/tex"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}"); + chdir("${root}/${version}"); +# run_cmd("rm -rf README.vin maint/config.log maint/config.status unusederr.txt autom4te.cache src/mpe2/src/slog2sdk/doc/jumpshot-4/tex"); + run_cmd("rm -rf maint/config.log maint/config.status unusederr.txt autom4te.cache src/mpe2/src/slog2sdk/doc/jumpshot-4/tex"); +# debug("done\n"); # Get docs debug("===> Creating secondary package for the docs... "); chdir("${root}"); - run_cmd("cp -a mpich2-${version} mpich2-${version}-tmp"); +# <_OSU_MVAPICH_> +# run_cmd("cp -a mpich2-${version} mpich2-${version}-tmp"); + run_cmd("cp -a ${version} ${version}-tmp"); +# debug("done\n"); debug("===> Configuring and making the secondary package... "); - chdir("${root}/mpich2-${version}-tmp"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}-tmp"); + chdir("${root}/${version}-tmp"); +# run_cmd("./maint/updatefiles"); - run_cmd("./configure --without-mpe --disable-f90 --disable-f77 --disable-cxx"); +# <_OSU_MVAPICH_> +# run_cmd("./configure --disable-mpe --disable-f90 --disable-f77 --disable-cxx"); + run_cmd("./configure --disable-f90 --disable-f77 --disable-cxx"); +# run_cmd("(make mandoc && make htmldoc && make latexdoc)"); debug("done\n"); debug("===> Copying docs over... "); - chdir("${root}/mpich2-${version}-tmp"); - run_cmd("cp -a man ${root}/mpich2-${version}"); - run_cmd("cp -a www ${root}/mpich2-${version}"); - run_cmd("cp -a doc/userguide/user.pdf ${root}/mpich2-${version}/doc/userguide"); - run_cmd("cp -a doc/installguide/install.pdf ${root}/mpich2-${version}/doc/installguide"); - run_cmd("cp -a doc/smpd/smpd_pmi.pdf ${root}/mpich2-${version}/doc/smpd"); - run_cmd("cp -a doc/logging/logging.pdf ${root}/mpich2-${version}/doc/logging"); - run_cmd("cp -a doc/windev/windev.pdf ${root}/mpich2-${version}/doc/windev"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}-tmp"); +# run_cmd("cp -a man ${root}/mpich2-${version}"); +# run_cmd("cp -a www ${root}/mpich2-${version}"); +# run_cmd("cp -a doc/userguide/user.pdf ${root}/mpich2-${version}/doc/userguide"); +# run_cmd("cp -a doc/installguide/install.pdf ${root}/mpich2-${version}/doc/installguide"); +# run_cmd("cp -a doc/smpd/smpd_pmi.pdf ${root}/mpich2-${version}/doc/smpd"); +# run_cmd("cp -a doc/logging/logging.pdf ${root}/mpich2-${version}/doc/logging"); +# run_cmd("cp -a doc/windev/windev.pdf ${root}/mpich2-${version}/doc/windev"); + chdir("${root}/${version}-tmp"); + run_cmd("cp -a man ${root}/${version}"); + run_cmd("cp -a www ${root}/${version}"); +# chdir("${root}"); - run_cmd("rm -rf mpich2-${version}-tmp"); +# <_OSU_MVAPICH_> +# run_cmd("rm -rf mpich2-${version}-tmp"); + run_cmd("rm -rf ${version}-tmp"); +# debug("done\n"); debug("===> Creating ROMIO docs... "); - chdir("${root}/mpich2-${version}/src/mpi"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}/src/mpi"); + chdir("${root}/${version}/src/mpi"); +# create_docs("romio"); debug("done\n"); debug( "===> Creating MPE docs... "); - chdir("${root}/mpich2-${version}/src"); +# <_OSU_MVAPICH_> +# chdir("${root}/mpich2-${version}/src"); + chdir("${root}/${version}/src"); +# create_docs("mpe"); debug("done\n"); # Create the tarball - debug("===> Creating the final mpich2 tarball... "); + debug("===> Creating the final mvapich2 tarball... "); chdir("${root}"); - run_cmd("tar -czvf mpich2-${version}.tgz mpich2-${version}"); - run_cmd("rm -rf mpich2-${version}"); +# <_OSU_MVAPICH_> +# run_cmd("tar -czvf mpich2-${version}.tgz mpich2-${version}"); +# run_cmd("rm -rf mpich2-${version}"); + run_cmd("tar -czvf ${version}.tgz ${version}"); + run_cmd("rm -rf ${version}"); +# debug("done\n\n"); } -sub create_romio -{ - # Check out the appropriate source - debug("===> Checking out romio SVN source... "); - run_cmd("rm -rf romio-${version} romio"); - run_cmd("svn export -q ${source}/src/mpi/romio"); - debug("done\n"); +# <_OSU_MVAPICH_> +#sub create_romio +#{ +# # Check out the appropriate source +# debug("===> Checking out romio SVN source... "); +# run_cmd("rm -rf romio-${version} romio"); +# run_cmd("svn export -q ${source}/src/mpi/romio"); +# debug("done\n"); +# +# debug("===> Creating configure... "); +# chdir("${root}/romio"); +# run_cmd("autoreconf"); +# debug("done\n"); +# +# debug("===> Creating ROMIO docs... "); +# chdir("${root}"); +# create_docs("romio"); +# debug("done\n"); +# +# # Create the tarball +# debug("===> Creating the final romio tarball... "); +# chdir("${root}"); +# run_cmd("mv romio romio-${version}"); +# run_cmd("tar -czvf romio-${version}.tgz romio-${version}"); +# run_cmd("rm -rf romio-${version}"); +# debug("done\n\n"); +#} +# +#sub create_mpe +#{ +# # Check out the appropriate source +# debug("===> Checking out mpe2 SVN source... "); +# run_cmd("rm -rf mpe2-${version} mpe2"); +# run_cmd("svn export -q ${source}/src/mpe2"); +# debug("done\n"); +# +# debug("===> Creating configure... "); +# chdir("${root}/mpe2"); +# run_cmd("./maint/updatefiles"); +# debug("done\n"); +# +# debug("===> Creating MPE docs... "); +# chdir("${root}"); +# create_docs("mpe"); +# debug("done\n"); +# +# # Create the tarball +# debug("===> Creating the final mpe2 tarball... "); +# chdir("${root}"); +# run_cmd("mv mpe2 mpe2-${version}"); +# run_cmd("tar -czvf mpe2-${version}.tgz mpe2-${version}"); +# run_cmd("rm -rf mpe2-${version}"); +# debug("done\n\n"); +#} +# +# - debug("===> Creating configure... "); - chdir("${root}/romio"); - run_cmd("autoreconf"); - debug("done\n"); - - debug("===> Creating ROMIO docs... "); - chdir("${root}"); - create_docs("romio"); - debug("done\n"); - - # Create the tarball - debug("===> Creating the final romio tarball... "); - chdir("${root}"); - run_cmd("mv romio romio-${version}"); - run_cmd("tar -czvf romio-${version}.tgz romio-${version}"); - run_cmd("rm -rf romio-${version}"); - debug("done\n\n"); -} - -sub create_mpe -{ - # Check out the appropriate source - debug("===> Checking out mpe2 SVN source... "); - run_cmd("rm -rf mpe2-${version} mpe2"); - run_cmd("svn export -q ${source}/src/mpe2"); - debug("done\n"); - - debug("===> Creating configure... "); - chdir("${root}/mpe2"); - run_cmd("./maint/updatefiles"); - debug("done\n"); - - debug("===> Creating MPE docs... "); - chdir("${root}"); - create_docs("mpe"); - debug("done\n"); - - # Create the tarball - debug("===> Creating the final mpe2 tarball... "); - chdir("${root}"); - run_cmd("mv mpe2 mpe2-${version}"); - run_cmd("tar -czvf mpe2-${version}.tgz mpe2-${version}"); - run_cmd("rm -rf mpe2-${version}"); - debug("done\n\n"); -} - GetOptions( "source=s" => \$source, - "package:s" => \$pack, +# <_OSU_MVAPICH_> +# "package:s" => \$pack, +# "help" => \&usage, ) or die "unable to parse options, stopped"; @@ -210,9 +263,11 @@ $version = $ARGV[0]; -if (!$pack) { - $pack = "mpich2"; -} +# <_OSU_MVAPICH_> +#if (!$pack) { +# $pack = "mpich2"; +#} +# if (!$source || !$version) { usage(); @@ -231,21 +286,22 @@ } system("rm -f ${root}/$logfile"); - -if ($pack eq "mpich2") { - create_mpich2(); -} -elsif ($pack eq "romio") { - create_romio(); -} -elsif ($pack eq "mpe") { - create_mpe(); -} -elsif ($pack eq "all") { - create_mpich2(); - create_romio(); -# create_mpe(); -} -else { - die "Unknown package: $pack"; -} +# <_OSU_MVAPICH_> +#if ($pack eq "mpich2") { + create_mvapich2(); +#} +#elsif ($pack eq "romio") { +# create_romio(); +#} +#elsif ($pack eq "mpe") { +# create_mpe(); +#} +#elsif ($pack eq "all") { +# create_mpich2(); +# create_romio(); +## create_mpe(); +#} +#else { +# die "Unknown package: $pack"; +#} +# From curtisbr at mvapich.cse.ohio-state.edu Wed Jul 2 17:27:43 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 17:27:49 2008 Subject: [mvapich-commit] r2820 - mvapich2/tags Message-ID: <200807022127.m62LRhON009435@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-02 17:27:41 -0400 (Wed, 02 Jul 2008) New Revision: 2820 Added: mvapich2/tags/1.2rc1/ Log: Create 1.2rc1 release tag. Copied: mvapich2/tags/1.2rc1 (from rev 2819, mvapich2/trunk) From curtisbr at mvapich.cse.ohio-state.edu Wed Jul 2 20:33:14 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 20:33:18 2008 Subject: [mvapich-commit] r2821 - mvapich2/tags Message-ID: <200807030033.m630XEFr010034@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-02 20:33:14 -0400 (Wed, 02 Jul 2008) New Revision: 2821 Removed: mvapich2/tags/1.1-pre-alpha/ Log: Remove obsolete 1.1 alpha tag. From curtisbr at mvapich.cse.ohio-state.edu Wed Jul 2 20:36:30 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 20:36:34 2008 Subject: [mvapich-commit] r2822 - mvapich2/tags Message-ID: <200807030036.m630aUgS010067@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-02 20:36:30 -0400 (Wed, 02 Jul 2008) New Revision: 2822 Removed: mvapich2/tags/trunk_08052006/ Log: Remove obsolete and cryptic tag. From curtisbr at mvapich.cse.ohio-state.edu Wed Jul 2 23:33:11 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 23:33:17 2008 Subject: [mvapich-commit] r2824 - in mvapich2/trunk/src/mpi/romio/adio: ad_lustre common Message-ID: <200807030333.m633XB5i010812@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-02 23:33:09 -0400 (Wed, 02 Jul 2008) New Revision: 2824 Modified: mvapich2/trunk/src/mpi/romio/adio/ad_lustre/ad_lustre_open.c mvapich2/trunk/src/mpi/romio/adio/common/ad_aggregate.c Log: Add copyright to modified ROMIO files. Modified: mvapich2/trunk/src/mpi/romio/adio/ad_lustre/ad_lustre_open.c =================================================================== --- mvapich2/trunk/src/mpi/romio/adio/ad_lustre/ad_lustre_open.c 2008-07-03 03:32:20 UTC (rev 2823) +++ mvapich2/trunk/src/mpi/romio/adio/ad_lustre/ad_lustre_open.c 2008-07-03 03:33:09 UTC (rev 2824) @@ -1,3 +1,14 @@ +/* Copyright (c) 2003-2008, The Ohio State University. All rights + * reserved. + * + * This file is part of the MVAPICH2 software package developed by the + * team members of The Ohio State University's Network-Based Computing + * Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. + * + * For detailed copyright and licensing information, please refer to the + * copyright file COPYRIGHT in the top level MVAPICH2 directory. + * + */ /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* * Copyright (C) 1997 University of Chicago. Modified: mvapich2/trunk/src/mpi/romio/adio/common/ad_aggregate.c =================================================================== --- mvapich2/trunk/src/mpi/romio/adio/common/ad_aggregate.c 2008-07-03 03:32:20 UTC (rev 2823) +++ mvapich2/trunk/src/mpi/romio/adio/common/ad_aggregate.c 2008-07-03 03:33:09 UTC (rev 2824) @@ -1,3 +1,14 @@ +/* Copyright (c) 2003-2008, The Ohio State University. All rights + * reserved. + * + * This file is part of the MVAPICH2 software package developed by the + * team members of The Ohio State University's Network-Based Computing + * Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. + * + * For detailed copyright and licensing information, please refer to the + * copyright file COPYRIGHT in the top level MVAPICH2 directory. + * + */ /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* * Copyright (C) 1997-2001 University of Chicago. From curtisbr at mvapich.cse.ohio-state.edu Wed Jul 2 23:58:34 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Wed Jul 2 23:58:41 2008 Subject: [mvapich-commit] r2826 - in mvapich2/trunk: . maint src src/binding/f90 src/mpid/ch3 src/pkgconfig src/pm src/pm/mpd src/pmi/slurm src/pmi/smpd src/util test/mpi Message-ID: <200807030358.m633wYrC010956@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-02 23:58:34 -0400 (Wed, 02 Jul 2008) New Revision: 2826 Modified: mvapich2/trunk/Makefile.sm mvapich2/trunk/maint/release.pl mvapich2/trunk/src/Makefile.sm mvapich2/trunk/src/binding/f90/buildiface mvapich2/trunk/src/mpid/ch3/Makefile.sm mvapich2/trunk/src/mpid/ch3/errnames.txt mvapich2/trunk/src/mpid/ch3/mpich2prereq mvapich2/trunk/src/mpid/ch3/setup_device.args mvapich2/trunk/src/pkgconfig/mpich2-ch3.pc.in mvapich2/trunk/src/pm/Makefile.sm mvapich2/trunk/src/pm/mpd/Makefile.in mvapich2/trunk/src/pm/mpd/mpdman.py mvapich2/trunk/src/pm/mpd/mpiexec.py mvapich2/trunk/src/pmi/slurm/configure.in mvapich2/trunk/src/pmi/slurm/localdefs.in mvapich2/trunk/src/pmi/smpd/ipmi.h mvapich2/trunk/src/pmi/smpd/smpd_ipmi.c mvapich2/trunk/src/util/createshlib.in mvapich2/trunk/test/mpi/configure.in Log: Add copyright to modified files. Modified: mvapich2/trunk/Makefile.sm =================================================================== --- mvapich2/trunk/Makefile.sm 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/Makefile.sm 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,4 +1,14 @@ # -*- Mode: makefile; -*- +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + SUBDIRS = . src @EXTERNAL_SRC_DIRS@ examples # Do not include test in the basic build. OTHER_DIRS = test Modified: mvapich2/trunk/maint/release.pl =================================================================== --- mvapich2/trunk/maint/release.pl 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/maint/release.pl 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,4 +1,13 @@ #!/usr/bin/env perl +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. use strict; use warnings; Modified: mvapich2/trunk/src/Makefile.sm =================================================================== --- mvapich2/trunk/src/Makefile.sm 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/Makefile.sm 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,3 +1,13 @@ +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + SUBDIRS_mpe_dir = mpe2 SUBDIRS = mpid mpi util nameserv binding env pkgconfig @mpe_dir@ pmi pm . # Add "include" to the directories used for creating the TAGS files Modified: mvapich2/trunk/src/binding/f90/buildiface =================================================================== --- mvapich2/trunk/src/binding/f90/buildiface 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/binding/f90/buildiface 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,4 +1,14 @@ #! /usr/bin/perl -w +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + # binding.sub provides the routines for reading the prototype file # and extracting the function definitions. require "binding.sub"; Modified: mvapich2/trunk/src/mpid/ch3/Makefile.sm =================================================================== --- mvapich2/trunk/src/mpid/ch3/Makefile.sm 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/mpid/ch3/Makefile.sm 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,3 +1,13 @@ +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + SUBDIRS = channels src util . distclean-local: Modified: mvapich2/trunk/src/mpid/ch3/errnames.txt =================================================================== --- mvapich2/trunk/src/mpid/ch3/errnames.txt 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/mpid/ch3/errnames.txt 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,4 +1,14 @@ +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. # +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + +# # CH3 errors # **ch3|pktarraytoosmall: Size of the array of packet handlers is too small Modified: mvapich2/trunk/src/mpid/ch3/mpich2prereq =================================================================== --- mvapich2/trunk/src/mpid/ch3/mpich2prereq 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/mpid/ch3/mpich2prereq 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,5 +1,15 @@ #! /bin/sh +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. # +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + +# # Provide information to the top level configure about the capabilities of # the ch3 device. # Modified: mvapich2/trunk/src/mpid/ch3/setup_device.args =================================================================== --- mvapich2/trunk/src/mpid/ch3/setup_device.args 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/mpid/ch3/setup_device.args 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,3 +1,13 @@ +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + if test -z "${device_args}" ; then # <_OSU_MVAPICH_> # device_args="sock" Modified: mvapich2/trunk/src/pkgconfig/mpich2-ch3.pc.in =================================================================== --- mvapich2/trunk/src/pkgconfig/mpich2-ch3.pc.in 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pkgconfig/mpich2-ch3.pc.in 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,7 +1,17 @@ -# this gives access to the mpich2 header files +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. -Name: mpich2 -Description: MPICH2 is an implementation of the Message-Passing Interface (MPI). The goals of MPICH2 are to provide an MPI implementation for important platforms, including clusters, SMPs, and massively parallel processors. It also provides a vehicle for MPI implementation research and for developing new and better parallel programming environments. +# this gives access to the mvapich2 header files + +Name: mvapich2 +Description: MVAPICH2 is an implementation of the Message-Passing Interface (MPI). The goals of MVAPICH2 are to provide an MPI implementation for important platforms, including clusters, SMPs, and massively parallel processors. It also provides a vehicle for MPI implementation research and for developing new and better parallel programming environments. Version: @VERSION@ Requires: Libs: -L@libdir@ -lmpich -lmpichcxx @LIBS@ Modified: mvapich2/trunk/src/pm/Makefile.sm =================================================================== --- mvapich2/trunk/src/pm/Makefile.sm 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pm/Makefile.sm 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,3 +1,13 @@ +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + # SUBDIRS_pm_name are the names that @ pm_name @ can take in SUBDIRS # (except for util, which is included so that simplemake will process # the Makefile.sm in that directory) Modified: mvapich2/trunk/src/pm/mpd/Makefile.in =================================================================== --- mvapich2/trunk/src/pm/mpd/Makefile.in 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pm/mpd/Makefile.in 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,3 +1,13 @@ +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + # Makefile.in for mpd2 @SET_MAKE@ Modified: mvapich2/trunk/src/pm/mpd/mpdman.py =================================================================== --- mvapich2/trunk/src/pm/mpd/mpdman.py 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pm/mpd/mpdman.py 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,5 +1,15 @@ #!/usr/bin/env python # +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. +# # (C) 2001 by Argonne National Laboratory. # See COPYRIGHT in top-level directory. # Modified: mvapich2/trunk/src/pm/mpd/mpiexec.py =================================================================== --- mvapich2/trunk/src/pm/mpd/mpiexec.py 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pm/mpd/mpiexec.py 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,5 +1,15 @@ #!/usr/bin/env python # +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. +# # (C) 2001 by Argonne National Laboratory. # See COPYRIGHT in top-level directory. # Modified: mvapich2/trunk/src/pmi/slurm/configure.in =================================================================== --- mvapich2/trunk/src/pmi/slurm/configure.in 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pmi/slurm/configure.in 2008-07-03 03:58:34 UTC (rev 2826) @@ -12,6 +12,17 @@ dnl Definitions will be placed in this file rather than in the DEFS variable AC_CONFIG_HEADER(pmiconf.h) AH_TOP([/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* Copyright (c) 2003-2008, The Ohio State University. All rights + * reserved. + * + * This file is part of the MVAPICH2 software package developed by the + * team members of The Ohio State University's Network-Based Computing + * Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. + * + * For detailed copyright and licensing information, please refer to the + * copyright file COPYRIGHT in the top level MVAPICH2 directory. + * + */ /* * (C) 2008 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. Modified: mvapich2/trunk/src/pmi/slurm/localdefs.in =================================================================== --- mvapich2/trunk/src/pmi/slurm/localdefs.in 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pmi/slurm/localdefs.in 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,4 +1,14 @@ #! /bin/sh +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + # Add any libraries or paths needed by slurm # <_OSU_MVAPICH_> export LD_LIBRARY_PATH=@slurm_ld_library_path@:$LD_LIBRARY_PATH Modified: mvapich2/trunk/src/pmi/smpd/ipmi.h =================================================================== --- mvapich2/trunk/src/pmi/smpd/ipmi.h 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pmi/smpd/ipmi.h 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,4 +1,15 @@ /* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* Copyright (c) 2003-2008, The Ohio State University. All rights + * reserved. + * + * This file is part of the MVAPICH2 software package developed by the + * team members of The Ohio State University's Network-Based Computing + * Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. + * + * For detailed copyright and licensing information, please refer to the + * copyright file COPYRIGHT in the top level MVAPICH2 directory. + * + */ /* * (C) 2001 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. Modified: mvapich2/trunk/src/pmi/smpd/smpd_ipmi.c =================================================================== --- mvapich2/trunk/src/pmi/smpd/smpd_ipmi.c 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/pmi/smpd/smpd_ipmi.c 2008-07-03 03:58:34 UTC (rev 2826) @@ -1,3 +1,14 @@ +/* Copyright (c) 2003-2008, The Ohio State University. All rights + * reserved. + * + * This file is part of the MVAPICH2 software package developed by the + * team members of The Ohio State University's Network-Based Computing + * Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. + * + * For detailed copyright and licensing information, please refer to the + * copyright file COPYRIGHT in the top level MVAPICH2 directory. + * + */ /* -*- Mode: C; c-basic-offset:4 ; -*- */ /* * (C) 2001 by Argonne National Laboratory. Modified: mvapich2/trunk/src/util/createshlib.in =================================================================== --- mvapich2/trunk/src/util/createshlib.in 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/src/util/createshlib.in 2008-07-03 03:58:34 UTC (rev 2826) @@ -2,6 +2,17 @@ #set -x # -*- Mode: shell-script; -*- # +# Copyright (c) 2003-2008, The Ohio State University. All rights +# reserved. +# +# This file is part of the MVAPICH2 software package developed by the +# team members of The Ohio State University's Network-Based Computing +# Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. +# +# For detailed copyright and licensing information, please refer to the +# copyright file COPYRIGHT in the top level MVAPICH2 directory. + +# # This is a simplified tool for creating and installing shared libraries # Like libtool, is has a link and install mode # It handles fewer cases than libtool, but it is also simpler and easier to Modified: mvapich2/trunk/test/mpi/configure.in =================================================================== --- mvapich2/trunk/test/mpi/configure.in 2008-07-03 03:58:03 UTC (rev 2825) +++ mvapich2/trunk/test/mpi/configure.in 2008-07-03 03:58:34 UTC (rev 2826) @@ -12,6 +12,17 @@ AC_INIT(include/mpitest.h) AC_CONFIG_HEADER(include/mpitestconf.h) AH_TOP([/* -*- Mode: C; c-basic-offset:4 ; -*- */ +/* Copyright (c) 2003-2008, The Ohio State University. All rights + * reserved. + * + * This file is part of the MVAPICH2 software package developed by the + * team members of The Ohio State University's Network-Based Computing + * Laboratory (NBCL), headed by Professor Dhabaleswar K. (DK) Panda. + * + * For detailed copyright and licensing information, please refer to the + * copyright file COPYRIGHT in the top level MVAPICH2 directory. + * + */ /* * (C) 2001 by Argonne National Laboratory. * See COPYRIGHT in top-level directory. From curtisbr at mvapich.cse.ohio-state.edu Thu Jul 3 00:07:28 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Thu Jul 3 00:07:33 2008 Subject: [mvapich-commit] r2827 - mvapich2/tags Message-ID: <200807030407.m6347SxA011009@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-03 00:07:26 -0400 (Thu, 03 Jul 2008) New Revision: 2827 Removed: mvapich2/tags/1.2rc1/ Log: Remove 1.2rc1 tag temporarily so copyright changes can be added. From curtisbr at mvapich.cse.ohio-state.edu Thu Jul 3 00:08:35 2008 From: curtisbr at mvapich.cse.ohio-state.edu (curtisbr@mvapich.cse.ohio-state.edu) Date: Thu Jul 3 00:08:40 2008 Subject: [mvapich-commit] r2828 - mvapich2/tags Message-ID: <200807030408.m6348ZV3011029@mvapich.cse.ohio-state.edu> Author: curtisbr Date: 2008-07-03 00:08:35 -0400 (Thu, 03 Jul 2008) New Revision: 2828 Added: mvapich2/tags/1.2rc1/ Log: Recreate 1.2rc1 tag with copyright additions. Copied: mvapich2/tags/1.2rc1 (from rev 2827, mvapich2/trunk) From kumarra at mvapich.cse.ohio-state.edu Mon Jul 7 17:23:15 2008 From: kumarra at mvapich.cse.ohio-state.edu (kumarra@mvapich.cse.ohio-state.edu) Date: Mon Jul 7 17:23:22 2008 Subject: [mvapich-commit] r2836 - in mvapich2/trunk/src: mpi/coll mpid/ch3/channels/mrail/src/rdma Message-ID: <200807072123.m67LNFDv011224@mvapich.cse.ohio-state.edu> Author: kumarra Date: 2008-07-07 17:23:14 -0400 (Mon, 07 Jul 2008) New Revision: 2836 Modified: mvapich2/trunk/src/mpi/coll/bcast.c mvapich2/trunk/src/mpid/ch3/channels/mrail/src/rdma/ch3_shmem_coll.c mvapich2/trunk/src/mpid/ch3/channels/mrail/src/rdma/coll_shmem.h Log: Merge checkin 2834 from exp2 Modified: mvapich2/trunk/src/mpi/coll/bcast.c =================================================================== --- mvapich2/trunk/src/mpi/coll/bcast.c 2008-07-07 21:22:37 UTC (rev 2835) +++ mvapich2/trunk/src/mpi/coll/bcast.c 2008-07-07 21:23:14 UTC (rev 2836) @@ -256,7 +256,322 @@ #if defined(_OSU_MVAPICH_) else if (enable_shmem_collectives && (comm_ptr->shmem_coll_ok == 1) && (nbytes < shmem_bcast_threshold) && is_contig && is_homogeneous && enable_shmem_bcast){ - intra_shmem_Bcast_Large(buffer, count, datatype, nbytes, root, comm_ptr); + mpi_errno = intra_shmem_Bcast_Large(buffer, count, datatype, nbytes, root, comm_ptr); + if(mpi_errno == -1) { + /* use long message algorithm: binomial tree scatter followed by an + allgather */ + + /* The scatter algorithm divides the buffer into nprocs pieces and + scatters them among the processes. Root gets the first piece, + root+1 gets the second piece, and so forth. Uses the same binomial + tree algorithm as above. Ceiling division + is used to compute the size of each piece. This means some + processes may not get any data. For example if bufsize = 97 and + nprocs = 16, ranks 15 and 16 will get 0 data. On each process, the + scattered data is stored at the same offset in the buffer as it is + on the root process. */ + + if (is_contig && is_homogeneous) + { + /* contiguous and homogeneous. no need to pack. */ + mpi_errno = NMPI_Type_get_true_extent(datatype, &true_lb, + &true_extent); + if (mpi_errno) { + MPIU_ERR_POP(mpi_errno); + } + tmp_buf = (char *) buffer + true_lb; + } + + scatter_size = (nbytes + comm_size - 1)/comm_size; /* ceiling division */ + curr_size = (rank == root) ? nbytes : 0; /* root starts with all the + data */ + + mask = 0x1; + while (mask < comm_size) + { + if (relative_rank & mask) + { + src = rank - mask; + if (src < 0) src += comm_size; + recv_size = nbytes - relative_rank*scatter_size; + /* recv_size is larger than what might actually be sent by the + sender. We don't need compute the exact value because MPI + allows you to post a larger recv.*/ + if (recv_size <= 0) + { + curr_size = 0; /* this process doesn't receive any data + because of uneven division */ + } + else + { + mpi_errno = MPIC_Recv(((char *)tmp_buf + + relative_rank*scatter_size), + recv_size, MPI_BYTE, src, + MPIR_BCAST_TAG, comm, &status); + if (mpi_errno != MPI_SUCCESS) { + MPIU_ERR_POP(mpi_errno); + } + + /* query actual size of data received */ + NMPI_Get_count(&status, MPI_BYTE, &curr_size); + } + break; + } + mask <<= 1; + } + + /* This process is responsible for all processes that have bits + set from the LSB upto (but not including) mask. Because of + the "not including", we start by shifting mask back down + one. */ + + mask >>= 1; + while (mask > 0) + { + if (relative_rank + mask < comm_size) + { + send_size = curr_size - scatter_size * mask; + /* mask is also the size of this process's subtree */ + + if (send_size > 0) + { + dst = rank + mask; + if (dst >= comm_size) dst -= comm_size; + mpi_errno = MPIC_Send (((char *)tmp_buf + + scatter_size*(relative_rank+mask)), + send_size, MPI_BYTE, dst, + MPIR_BCAST_TAG, comm); + if (mpi_errno != MPI_SUCCESS) { + MPIU_ERR_POP(mpi_errno); + } + curr_size -= send_size; + } + } + mask >>= 1; + } + + /* Scatter complete. Now do an allgather . */ + + /* check if comm_size is a power of two */ + #if defined(_OSU_MVAPICH_) + if (nbytes < MPIR_BCAST_LONG_MSG + && (comm_size & comm_size - 1) == 0) + #else /* defined(_OSU_MVAPICH_) */ + pof2 = 1; + while (pof2 < comm_size) + pof2 *= 2; + if (pof2 == comm_size) + comm_size_is_pof2 = 1; + else + comm_size_is_pof2 = 0; + + if ((nbytes < MPIR_BCAST_LONG_MSG) && (comm_size_is_pof2)) + #endif /* defined(_OSU_MVAPICH_) */ + { + /* medium size allgather and pof2 comm_size. use recurive doubling. */ + + mask = 0x1; + i = 0; + while (mask < comm_size) + { + relative_dst = relative_rank ^ mask; + + dst = (relative_dst + root) % comm_size; + + /* find offset into send and recv buffers. + zero out the least significant "i" bits of relative_rank and + relative_dst to find root of src and dst + subtrees. Use ranks of roots as index to send from + and recv into buffer */ + + dst_tree_root = relative_dst >> i; + dst_tree_root <<= i; + + my_tree_root = relative_rank >> i; + my_tree_root <<= i; + + send_offset = my_tree_root * scatter_size; + recv_offset = dst_tree_root * scatter_size; + + if (relative_dst < comm_size) + { + mpi_errno = MPIC_Sendrecv(((char *)tmp_buf + send_offset), + curr_size, MPI_BYTE, dst, MPIR_BCAST_TAG, + ((char *)tmp_buf + recv_offset), + (nbytes-recv_offset < 0 ? 0 : nbytes-recv_offset), + MPI_BYTE, dst, MPIR_BCAST_TAG, comm, &status); + if (mpi_errno != MPI_SUCCESS) { + MPIU_ERR_POP(mpi_errno); + } + NMPI_Get_count(&status, MPI_BYTE, &recv_size); + curr_size += recv_size; + } + + /* if some processes in this process's subtree in this step + did not have any destination process to communicate with + because of non-power-of-two, we need to send them the + data that they would normally have received from those + processes. That is, the haves in this subtree must send to + the havenots. We use a logarithmic recursive-halfing algorithm + for this. */ + + /* This part of the code will not currently be + executed because we are not using recursive + doubling for non power of two. Mark it as experimental + so that it doesn't show up as red in the coverage tests. */ + + /* --BEGIN EXPERIMENTAL-- */ + if (dst_tree_root + mask > comm_size) + { + nprocs_completed = comm_size - my_tree_root - mask; + /* nprocs_completed is the number of processes in this + subtree that have all the data. Send data to others + in a tree fashion. First find root of current tree + that is being divided into two. k is the number of + least-significant bits in this process's rank that + must be zeroed out to find the rank of the root */ + j = mask; + k = 0; + while (j) + { + j >>= 1; + k++; + } + k--; + + offset = scatter_size * (my_tree_root + mask); + tmp_mask = mask >> 1; + + while (tmp_mask) + { + relative_dst = relative_rank ^ tmp_mask; + dst = (relative_dst + root) % comm_size; + + tree_root = relative_rank >> k; + tree_root <<= k; + + /* send only if this proc has data and destination + doesn't have data. */ + + /* if (rank == 3) { + printf("rank %d, dst %d, root %d, nprocs_completed %d\n", relative_rank, relative_dst, tree_root, nprocs_completed); + fflush(stdout); + }*/ + + if ((relative_dst > relative_rank) && + (relative_rank < tree_root + nprocs_completed) + && (relative_dst >= tree_root + nprocs_completed)) + { + + /* printf("Rank %d, send to %d, offset %d, size %d\n", rank, dst, offset, recv_size); + fflush(stdout); */ + mpi_errno = MPIC_Send(((char *)tmp_buf + offset), + recv_size, MPI_BYTE, dst, + MPIR_BCAST_TAG, comm); + /* recv_size was set in the previous + receive. that's the amount of data to be + sent now. */ + if (mpi_errno != MPI_SUCCESS) { + MPIU_ERR_POP(mpi_errno); + } + } + /* recv only if this proc. doesn't have data and sender + has data */ + else if ((relative_dst < relative_rank) && + (relative_dst < tree_root + nprocs_completed) && + (relative_rank >= tree_root + nprocs_completed)) + { + /* printf("Rank %d waiting to recv from rank %d\n", + relative_rank, dst); */ + mpi_errno = MPIC_Recv(((char *)tmp_buf + offset), + nbytes - offset, + MPI_BYTE, dst, MPIR_BCAST_TAG, + comm, &status); + /* nprocs_completed is also equal to the no. of processes + whose data we don't have */ + if (mpi_errno != MPI_SUCCESS) { + MPIU_ERR_POP(mpi_errno); + } + NMPI_Get_count(&status, MPI_BYTE, &recv_size); + curr_size += recv_size; + /* printf("Rank %d, recv from %d, offset %d, size %d\n", rank, dst, offset, recv_size); + fflush(stdout);*/ + } + tmp_mask >>= 1; + k--; + } + } + /* --END EXPERIMENTAL-- */ + + mask <<= 1; + i++; + } + } + else + { + /* long-message allgather or medium-size but non-power-of-two. use ring algorithm. */ + + recvcnts = MPIU_Malloc(comm_size*sizeof(int)); + /* --BEGIN ERROR HANDLING-- */ + if (!recvcnts) + { + mpi_errno = MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER, "**nomem", + "**nomem %d", comm_size * sizeof(int)); + return mpi_errno; + } + /* --END ERROR HANDLING-- */ + displs = MPIU_Malloc(comm_size*sizeof(int)); + /* --BEGIN ERROR HANDLING-- */ + if (!displs) + { + mpi_errno = MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER, "**nomem", + "**nomem %d", comm_size * sizeof(int)); + return mpi_errno; + } + /* --END ERROR HANDLING-- */ + + for (i=0; i scatter_size) + recvcnts[i] = scatter_size; + if (recvcnts[i] < 0) + recvcnts[i] = 0; + } + + displs[0] = 0; + for (i=1; i