Release Notes for DIGITAL KAP for C Version 3.2 for DIGITAL UNIX Version 3.2 k010502 970918 December 1997 1 Purpose of Release Notes These release notes provide information about this version, 3.2, of DIGITAL KAP for C software and user documentation. Please read them before using this product. This version requires DIGITAL UNIX Version 3.2, 4.0B, 4.0C, or 4.0D. The name of this product has changed since the last release. The previous (Version 3.1) name was KAP for C for Digital UNIX The new (Version 3.2) name is DIGITAL KAP for C for DIGITAL UNIX To identify the version of DIGITAL KAP for C on your system, look at the first part of the software's output to the terminal. Three consecutive fields contain a version number, base level, and date in YYMMDD format. For Version 3.2 these fields contain: 3.2 k010502 970918 2 Changes Since DIGITAL KAP for C Version 3.1 DIGITAL KAP for C Version 3.2 is a maintenance release. The problems fixed by this release are: o In some cases the initialization of a variable was omitted. The documentation of the DIGITAL KAP switches has changed as follows: o -fuselevel=2 is explained o -unroll2 and -unroll3 have expanded explanations 3 Changes Since DIGITAL KAP for C Version 3.0 When the DIGITAL KAP driver, kcc, parallelizes code for symmet- ric multiprocessor (SMP) systems, it now uses the DIGITAL UNIX default linker switch selection -call_shared. The -call_shared switch causes the image to be linked with shared libraries in- stead of with archive libraries. In previous releases the driver overrode -call_shared by setting the linker switch -non_shared which caused the image to be linked with archive libraries. This change enables programs to use the versions of libraries on whatever system the program runs on without the need to relink. This is particularly important for the case of the DECthreads library, which changes with each minor and major revision of the operating system. For example, programs built on DIGITAL UNIX 4.0 can run on DIGITAL UNIX 4.0B, 4.0C, and 4.0D. IMPORTANT Due to differences in the DECthreads library between DIG- ITAL UNIX Version 3.2 and Versions 4.0 and above, paral- lelized applications built on DIGITAL UNIX Version 4.0 and above will not run on DIGITAL UNIX Version 3.2. However, parallelized applications built on DIGITAL UNIX 3.2 will run on DIGITAL UNIX Versions 4.0 and above. The DIGITAL KAP kit no longer includes the DECthreads archive library libpthread.a. Although DIGITAL recommends that you use the DECthreads shared library default, you can link an image to the DECthreads archive library libpthread.a, by using the -non_ shared linker switch and the following procedure: o DIGITAL UNIX Version 4.*: You should have installed the CMPDEVENH subset (Development Enhancements for DIGITAL UNIX) from the DIGITAL UNIX 4.0B- 4.0D operating system CD-ROM. The DECthreads archive library is at the following location: /usr/opt/alt/user/lib/threads/libpthread.a To link to libpthread.a when you are building a parallel program, use the following command: kcc -ckapargs='-conc' -non_shared \ /usr/opt/alt/usr/lib/threads/libpthread.a myprog.c Two versions of the DIGITAL KAP parallel processing library are included in the DIGITAL KAP kit. Library libkmp_osf.a is used on DIGITAL UNIX Version 3.2, and library libkmp_osfp10.a is used on DIGITAL UNIX Version 4.0 and above. The kcc driver automatically chooses the correct library to link with. 2 The parallel processing libraries now have version numbers associated with them. You can view the version numbers with the what command, for example: 1. For the DIGITAL UNIX Version 3.2 library, libkmp_osf.a: what /usr/lib/libkmp_osf.a This command returns: Version BL30_1.2_posix6 2. For the DIGITAL UNIX Version 4.* library, libkmp_osfp10.a: what /usr/lib/libkmp_osfp10.a This command returns: KAP parallel library 2703 $Revision: 28.3 (C) Copyright 1996 Kuck & Associates, Inc. Version BL30_1.2_posix10 Version 3.2 of DIGITAL KAP for C, DIGITAL KAP Fortran 90, and DIGITAL KAP for DEC Fortran use identical parallel libraries. If you use different languages within a parallelized program, you should use Version 3.2 of all three DIGITAL KAP products. Changes have been made to the switch defaults set by the kcc driver to optimize those defaults to the DEC C compiler. Those changes are as follows: 1. The C compiler switch -fast is set by default on DIGITAL UNIX Version 4.*. 2. The compiler and linker switch -pthread is set by default on DIGITAL UNIX Version 4.* when the DIGITAL KAP switch -concurrentize is set. This release of DIGITAL KAP has several new switches and new switch defaults: o The linker switch -call_shared is set by default when the DIGITAL KAP switch -concurrent or -minconcurrent has been set. o A new parallel processing directive has been added: #pragma _KAP concurrent ignore call The effect of this directive is the same as if the following two directives had been used: #pragma _KAP concurrent #pragma _KAP concurrent call The new directive was added so that users who found them- selves frequently using the combination of the two directives listed above, could replace them with a single directive. 3 4 Known Problems The error message returned when your threaded application has run out of stack space has changed. The DIGITAL UNIX Version 4.0B-Version 4.0D message is as follows: DECthreads Last Chance handler: thread 1 exiting on status exception 0x177db005 Exception: Invalid memory address (dce / thd) If this happens, try unlimiting your process quotas using the cshell unlimit command. 5 Trademark Information The following are third-party trademarks: KAP is a trademark of Kuck & Associates, Inc. POSIX is a registered trademark of IEEE. UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. All other trademarks and registered trademarks are the property of their respective holders. DIGITAL UNIX Versions 3.2, 4.0B, 4.0C, and 4.0D are X/Open UNIX 93 branded products. ©Digital Equipment Corporation. 1997. All Rights Reserved. 4