-/-\- Current and Past Releases -/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/- --- Version 1.0.1 / 8 Jan 1998 ----------------------------------------------- Programs Added the C and Fortran Gaussian Elimination programs. Added the raytrace program from SPLASH 2. Interface Added support for POSIX Pthreads-like condition variables, specifically, Tmk_lock_cond_broadcast(lock_id, cond_id), Tmk_lock_cond_signal(lock_id, cond_id), and Tmk_lock_cond_wait(lock_id, cond_id). These functions only differ from their Pthreads counterparts in that the association between locks and conditions is explicit. For example, in contrast to the Pthreads broadcast and signal, our broadcast and signal require the specification of the lock. Changed the Fortran API: a common block holds the proc_id, nprocs, page_size and npages. Added the "-v" option, which initializes the shared pages as valid but write protected on every node. This option generally reduces the number of messages and the amount of data transferred early in the execution. Added Tmk_mmap, which maps a file into shared memory. Its interface matches the underlying machine's mmap operation. Added the "-S" option, which reports the per process statistics as well as the cumulative statistics. Added the repo and twin counts to the statistics. Added the "-P" option, which sets the number of shared memory pages. Changed Tmk_distribute, Tmk_malloc, Tmk_free, and Tmk_sbrk to use "void *" instead of "char *" for consistency with their POSIX counterparts. Implementation Added MAP_NORESERVE/MAP_AUTORESRV (Solaris/Irix) to the mmap options, enabling the shared heap to grow beyond the swap space available on a single processor. (Some of the other operating systems allocate swap space on demand, i.e., lazily, for MAP_PRIVATE memory by default.) N.B. A processor cannot touch more memory than it has swap space to back. Modified fd_create to retry the receive buffer allocation with a smaller size if it fails. If the first allocation fails, fd_create prints a warning. If the second allocation fails, fd_create panics. IN EITHER CASE, your system administrator should increase MAXUSERS in your system's configuration. Added Fortran support for DEC UNIX V4.0A and IRIX 6. Updated the Alpha support to Digital UNIX V4.0A. Added support for Linux 2.0.x on the Alpha. However, it won't work until Linux provides a complete sigcontext. Updated the Linux/x86 support to Linux 2.0.x. Added support for Solaris 2.5 on the x86. Initialize the Tmk_malloc heap upon the first call rather than during startup. This corrects the bogus check made to differentiate C/C++ from Fortran. Notes The source distribution now contains the full RCS archive, including the next version, Tmk-1.1.0. "co -rTmk-1_1 *.{c,h}" in src/ and include/ will check out a (read-only) copy of these sources. (See Future Releases for details.) Death to Ultrix. It's no longer supported, but some vestiges remain. --- Version 0.10.1.2 / 10 May 1997 -------------------------------------------- Programs Changed the IS Makefile on Alpha/Digital UNIX V4.0A to link with "-lm". Implementation Added an additional barrier in Tmk_repo. Without this barrier, a lost repo barrier departure message could result in a post repo lock request returning out-of-date consistency information. Changed the implementation of the "-m" option to use "atol" instead of "atoi". Changed start_process to use "%ld" as well. (These changes are required for Alpha/Digital UNIX V4.0A.) --- Version 0.10.1.1 / 11 Nov 1996 -------------------------------------------- Implementation Updated the SGI support to IRIX 6.2. --- Version 0.10.1 / 22 May 1996 ---------------------------------------------- Interface Changed the Makefile structure for Fortran applications. Windows opened by the "-x" option persist until the user types control-C in the window. Changed the default page size under AIX 3.2.5/4.1 to 8K bytes! Use the "-X" command-line option to override the default page size. "-X0" changes the page size to 4K bytes. Implementation Completed the Linux 1.2.13 port, including Fortran support. Added Fortran support to AIX 4.1, FreeBSD 2.1R, and Solaris 2.x (SunOS 5.x). Use atexit or on_exit (SunOS 4.1) to delay closing slave windows until the user types a control-C. Changed Tmk_interval_incorporate to allow 65536-NPROCS-1 pages. Changed Tmk_page_initialize to ENFORCE the placement of the shared heap at the same address on every node. Eliminated empty_mask and BUS_or_SEGV_mask. Use SIG_UNBLOCK instead. Added read/write differentiation in segv_handler for __sparc Solaris and __386 FreeBSD 2.1R. Optimized the page copy on the Pentium. --- Version 0.10 / 27 January 1996 -------------------------------------------- Interface Application programs on the AIX 3.2.5 and 4.1 ports don't require the "bsd" compatibility library anymore. Implementation Completed the Solaris 2.x port (except for Fortran support). Many absurd casts were required to pacify the compiler. Substituted the sigaction/sigprocmask (POSIX) functions for sigvec/sigblock/sigsetmask. --- Version 0.9.7 / 19 January 1996 ------------------------------------------- Interface Application programs on the DEC UNIX 3.2 port don't require the "bsd" compatibility library. Implementation Completed the FreeBSD 2.1 port for the Intel x86 (except for Fortran support). The segv_handler and Tmk_diff_create still require optimization for the Intel x86. Changed bcopy to memcpy. Many compilers, e.g., i386 and rs6k, inline memcpy's of fixed length. Moved the mprotect in Tmk_diff_sigio_handler after the send, reducing the diff fetching latency, especially on AIX 3.2.5/4.1 where mprotects can be slow. Simplified the sigio_handler code. Added #error directives to detect (many) omissions during the porting process. --- Version 0.9.6 / 11 November 1995 ------------------------------------------ Interface Added cold miss count to the reported statistics. The SunOS 4.1.x/Fortran port doesn't require the "-align" linker directive on "Tmk_shared_common_" anymore. (See, e.g., apps/Jacobi/bin.sparc/Makefile.) Implementation Implemented mprotect merging to minimize mprotects by Tmk_interval_incorporate. This (often) reduces the length of the vm_map_entry list. Corrected the .Tmkrc file processing. If "-n" wasn't used, the process limit check failed. (This error was introduced in version 0.9.5.) Completed the AIX 4.1 port (except for Fortran support). Changed the sparc/fortran support to use mmap to setup "Tmk_shared_common_". --- Version 0.9.5 / 1 September 1995 ------------------------------------------ Interface Added support for LoadLeveler on the IBM SP2. Implementation Corrected the process limit check in Tmk_startup: The check was omitted when the "-h" command-line argument was used. Modified Tmk_page_initialize to use a single mprotect over the entire shared heap instead of an mprotect per page. (This reduces the length of the vm_map_entry list that is traversed by mprotect in OSF-based systems.) --- Version 0.9.4 / 31 July 1995 ---------------------------------------------- Programs Created a test program (apps/test/src/diff.c) that measures the diff creation and retrieval latency for empty and full diffs. (The latency for the page retrieval test should fall between these two values.) Interface No changes. Implementation Modified the page sigio handler to prevent a memory inconsistency error when a page and then a diff are requested from the same processor. The page sigio handler returns the twin if it exists. Modified the segv_handler for HPUX/HPPA to correctly differentiate reads from writes. Optimized the page copy loop in the segv_handler for the HPPA and SPARC. (The other architectures have fast bcopy routines.) Completed the IRIX 6.0/R8000 (Power Challenge) port. Adapted the Fortran interface to HPUX/HPPA. --- Version 0.9.3 / 17 June 1995 ---------------------------------------------- Interface Eliminated the "-I" and "-D" command-line arguments. (See below.) Added support for program debugging. To use a debugger, define the environment variable "DEBUGGER" as one of gdb, dbx, etc. and issue the command-line argument "-d". A window is started on each machine with the program loaded into the debugger. You will have to type a "run" command to each debugger. The master process will print the arguments that you should include with the "run" command. (See also the "-x" command-line argument in the manual.) N.B. With most debuggers you will have to issue a command instructing them to ignore SIGSEGVs (and perhaps SIGIOs). The former (undocumented) "-d" command-line argument was renamed "-t". Added a primitive Fortran interface on AIX, SunOS 4.1.x, and Ultrix. Provides a single, shared common block named Tmk_shared_common. Implementation Interval and diff storage grows automatically according to program requirements. Optimized the diff creation code to avoid conflict misses on direct map caches. Fixed a retransmission error that caused unnecessary retransmissions. Completed HPUX/HPPA and IRIX/R4x00 ports. SunOS 5.3 (Solaris) is supported using the bsd compatibility compiler/library. Reduced the amount of internal fragmentation by the Tmk_malloc allocator. -/-\- Future Releases -\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/- --- Version 2.0 --------------------------------------------------------------- Interface Add full-fledged SMP support. Implementation Add full-fledged SMP support using POSIX Pthreads. --- Version 1.2 --------------------------------------------------------------- Interface Add prefetching. Implementation Add prefetching. --- Version 1.1 --------------------------------------------------------------- Implementation Add the adaptive multiple-writer/single-writer protocol. Add support for process creation after Tmk_startup. Add support for a modest degree of heterogeneity, i.e., architectures that use the same byte ordering. Add a version of Tmk_distribute that uses the symbol table rather than the address to update global variables. Release swap space allocated to empty pages. --- To Be Announced ----------------------------------------------------------- Port to Windows NT -/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/-\-/- $Id: ReleaseNotes,v 10.12 1998/01/09 22:58:21 alc Exp $