Release Notes for DIGITAL KAP Fortran/OpenMP Version 4.0 for DIGITAL UNIX 1 Purpose of Release Notes These release notes provide information about this version of DIGITAL KAP Fortran software and user documentation. Please read them before using this product. DIGITAL KAP Fortran/OpenMP V4.0 includes both the KAP Fortran 77 and KAP Fortran 90 software within the KF9BASE400 subset. A license for either product works with both products. This version requires DIGITAL UNIX Version 4.0D along with DIGITAL Fortran Version 5.1 and above. This release of DIGITAL KAP Fortran/OpenMP is not supported on versions of DIGITAL Fortran prior to Version 5.1. To identify the version of DIGITAL KAP translators 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 4.0 these fields contain: kf90/kapf90: 4.0 k3012136 980529 kf77/kapf: 4.0 k3012136 980529 2 Changes Since DIGITAL KAP Fortran Version 3.2 The purpose of this release is to add support for the OpenMP di- rective set in kapf90 (note this support has been added only to KAP Fortran 90, kapf90, not to KAP Fortran 77, kapf). kapf90 can now automatically detect parallelism and insert OpenMP directives for loops that kapf90 has identified as good can- didates to run in parallel. These directives are then processed by the Fortran 90 compiler to produce a multithreaded executable program. In this release kapf90 generates OpenMP directives by default when the -conc switch is used. In the past, the default behavior was to generate calls to the KAP parallel run-time library, libkmp_osfp10.a. Users who still want to use libkmp_osfp10.a can do so by setting the -psyntax=kap switch. The default behavior of KAP Fortran 77 has not changed because KAP Fortran 77 does not support OpenMP. New kapf90 switches have been added to support OpenMP: o -psyntax This switch specifies the syntax of the parallel directive set and, by implication, whether the KAP parallel run-time library or the DIGITAL Fortran 90 compiler is used to im- plement that parallelization. The switch values are kap (to recognize the PCF directive set and use the KAP parallel run-time library) and openmp (to use the OpenMP directive set and the Fortran 90 compiler's ability to process OpenMP directives). The setting -psyntax=kap should be used if you have applica- tions that contain KAP Parallel Computing Forum (PCF) direc- tives and you want to process the code the same way you would have done with KAP Fortran 90 V3.2. The setting -psyntax=openmp is used when you want kapf90 to generate OpenMP type directives to be processed by the Fortran 90 compiler. -psyntax=openmp is the default setting. o -pdefault This switch tells KAP how to process variables that are not listed in an OpenMP data environment directive. Further- more, it is used only during directed parallelization. The following are values of this switch and their meanings. - safe This is the default value. However, if OpenMP directives are present and you have specified this value and KAP cannot determine the classification of a variable, then KAP displays an error message. - none Make no attempt to classify variables that have not been explicitly classified. - private(list) This switch provides a mechanism to make the listed vari- ables private to each thread in a team. The behavior of a variable declared in list is as follows: * A new object of the same type is declared once for each thread in the team. The new object is no longer storage * All references to the original object in the lexical extent of the directive construct are replaced with references to the private object. - shared(list) This clause provides a mechanism to make variables that appear in list to be shared among all the threads in a team. All threads within a team access the same storage area for shared data. The kf90 driver has been changed so that when a user specifies -conc, the kf90 driver automatically sets the compiler switches -omp and -pthread. 2 The parallel library has been updated for this release. The new version number is bl30.2_posix_10, which can be obtained by using the command what /usr/lib/libkmp_osfp10.a. Mixing the two parallelization methodologies, which are (1) calls to libkmp_osp10.a and (2) OpenMP directives, within the same program is not supported. Therefore users wishing to par- allelize applications containing both Fortran 90 and C must do so by using the KAP parallel run-time library (-psyntax=kap) and must use KAP C V3.21 with KAP Fortran V4.0. New Environment Variables have been added to support OpenMP. These environment variables should be set when you have built the executable using the -psyntax=openmp switch setting: OMP_SCHEDULE (static,dynamic,guided,runtime) OMP_DYNAMIC (true,false) default is false. OMP_NESTED (true,false) default is false. OMP_NUM_THREADS (number) default value is the number of processors on the current system. For further information on the OMP* environment variables see the DIGITAL Fortran 90 User's Guide. As this release is not supported on UNIX version 3.2* the KAP parallel run-time library for UNIX V3.2, libkmp_osf.a, is no longer included in the kit. 3 Known Problems o The error message returned when your threaded application has run out of stack space has changed. The DIGITAL UNIX Version 4.* message is: 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. o When using standalone KAP, kapf90, turn off loop unrolling (-ur=1) if you are setting the DIGITAL Fortran 90 compiler's optimization to level 5 (-o5). The KAP driver, kf90, does this for you automatically. 4 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. 3 All other trademarks and registered trademarks are the property of their respective holders. DIGITAL UNIX Versions 4.0B, 4.0C, and 4.0D are X/Open UNIX 93 branded products. ©Digital Equipment Corporation. 1998. All Rights Reserved. 4