| 
 LF64 v8.0 Delivers!
 Important features include ...
 
Intel EM64T and AMD AMD64 64-bit optimizations
Unsurpassed global compile-time and runtime diagnostics
Automatic Parallelization
OpenMP Support
Wisk, Winteracter Starter Kit - Graphics package
Small and medium memory models
BLAS and LAPACK v4.0 routines - thread-safe
Fujitsu's SSL2 math library - thread-safe 
Fujitsu's FDB debugger
Automake, automatic make utility LF64 v8.0 is available
in two configurations, Express and PRO:
 
 LF64
Express includes the powerful Lahey/Fujitsu Fortran 95
optimizing compiler, command line debugger, online documentation, and free e-mail support. Suggested retail price, $249.
LF64
PRO adds auto-parallelization, OpenMP compatibility, the Winteracter Starter Kit, WiSK, for creating Windows GUIs
and displaying graphics, thread-safe BLAS and LAPACK, Polyhedron's Automake utility, and the Fujitsu SSL2 math
library (thread-safe for parallel applications). Suggested retail price, $695. - Available June 2006
 
 LF64
Performance
 Polyhedron Software (www.polyhedron.com) ran their suite of Fortran benchmarks on a Pentium D820 dual core 2.8 GHz processor, with 2 x 1MB L2 cache and 800 MHz FSB, and running SUSE 9.3 Linux. Specifying the switch --fast, the benchmarks ran an average of 21.8% faster than they did when built with LF95 Linux v6.2. Try LF64 v8.0 on your code today!
 LF64
Optimizations
 
 Basic Optimization
 
Program Reconstruction
Optimizations
Constant folding
Common subexpression
elimination
Copy propagation
Strength Reduction
Algebraic simplifications
Dead code elimination
Peephole optimization
Loop invariant code
motion
Transform array element
to simple variable
Local Instruction scheduling
Address calculation
optimization 
Procedure Optimization
Loop unrolling
Loop interchange 
Others
Inlining mathematical
functions
Stack optimization 
SSE2 and SSE3 instructions
Prefetch instructions
Using fast input/output
libraries Link
GNU C and assembly object files
 LF64 supports static
linking with GNU C or assembly. Combine your Fortran and C/C++ code
into one executable. For the routines you don't want to develop yourself,
you can also link with C/C++ routines from commercially available libraries.
 
 
 Legacy
Fortran Support
 LF64 extends its
language support in other directions adding many legacy Fortran features,
including VAX structures and the various UNIX service routines. These features
further facilitate your move to cost/performance efficiency on the PC platform:
 
Unlimited number of
continuation lines in free or fixed source form 
DO UNTIL statement 
FIND statement 
STRUCTURE and END STRUCTURE
statements 
UNION and END UNION
statements 
MAP and END MAP statements 
RECORD statement 
Non-standard POINTER
statement 
AUTOMATIC statement 
STATIC statement 
VALUE statement 
BYTE statement 
Hollerith constants 
Alternative forms of
binary, octal, and hexadecimal constants 
Binary, octal, or hexadecimal
constants in a DATA, declaration statement 
Period structure component
separator 
IMPLICIT UNDEFINED statement 
Namelist input/output
on internal file 
FORM = 'BINARY' 
TOTALREC specifier 
STATUS = 'SHR' 
Gw, $, \, and R edit
descriptors 
LOC intrinsic function 
The following service
subroutines: ABORT, BIC, BIS, CLOCK, CLOCKM, CLOCKV, DATE, ERROR, ERRSAV, ERRSET,
ERRSTR, ERRTRA, EXIT, FDATE, FLUSH, FREE, GETARG, GETCL, GETDAT, GETENV, GETLOG, GETPARM, GETTIM,
GETTOD, GMTIME, IBTOD, IDATE, IETOM, IOSTAT_MSG, ITIME, IVALUE, LTIME, MTOIE, PERROR, PRECFILL, PRNSET,
PROMPT, QSORT, REDLEN, SETBIT, SETRCD, SLEEP, SLITE, SLITET, TIMER 
The following service
functions: ACCESS, ALARM, BIT, CHDIR, CHMOD, CTIME, DRAND, DTIME, ETIME,
FGETC, FORK, FPUTC, FSEEK, FSEEKO64, FSTAT, FSTAT64, FTELL, FTELLO64, GETC, GETCWD, GETFD, GETGID, GETPID, GETUID, HOSTNM,
IARGC, IERRNO, INMAX, IOINIT, IRAND, ISATTY, JDATE, KILL, LINK, LNBLNK, LONG, LSTAT, LSTAT64, 
MALLOC, NARGS, PUTC, RAN, RAND, RENAME, RINDEX, RTC, SECNDS, SECOND,
SH, SHORT, SIGNAL, STAT, STAT64, SYMLNK, SYSTEM, TCLOSE, TIME, TIMEF, TTYNAM, UNLINK, WAIT  ANSI/ISO-Compliant
Fortran 95
 LF64 is a complete
implementation of the ANSI/ISO Fortran 95 standard. Fortran 95 offers some
small but important improvements over Fortran 90, including the ability
to create your own elemental procedures, default initialization for structure
components, the NULL intrinsic for initializing pointers, the FORALL construct,
and a standard CPU_TIME intrinsic procedure.
 
 
 
Free Technical Support
LF64 Linux Express
includes e-mail technical support at no extra charge.
 
 
Automatic Parallelization
The LF64 compiler automatically parallelizes DO loops and array operations without you having to make modifications to the program. This makes it easy to migrate source programs to other platforms (as long as the program conforms with the Fortran Standard). The effect  is to save elapsed execution time by using two or more CPUs simultaneously. For instance, if a DO loop can be executed in parallel by dividing it in half, then, theoretically, the execution time of this DO loop may be cut in half. In practice, improving performance requires some care and some work on the part of the programmer. During compilation, the auto-parallel function will return information regarding which processes were (and which were not) parallelized and why. While certain loops can be analyzed sufficiently to be parallelized by the compiler without input from the programmer, many loops have data dependencies that prevent automatic parallelization because of the potential for incorrect results. For that reason, LF64 PRO also includes optimization control lines (OCLs) that provide information necessary for the compiler to parallelize these otherwise unparallelizable loops.  The OCLs are Fortran comments in a particular format, for example:
 
 !OCL PARALLEL
 
 Note that programs with OCLs are standard-conforming and can be compiled with other compilers that do not support OCLs.
 
 Four compiler switches control automatic parallelization:  --parallel, --threads, --threadstack, and --ocl.  Details of automatic parallelization (loop slicing, interchange, distribution, fusion, and reduction, as well as OCL syntax and specifiers) are documented in the LF64 User's Guide and at www.lahey.com/doc.htm.
 
OpenMP v2.0 Compatibility
OpenMP specifies a set of compiler directives, library routines, and environment variables for shared-memory parallelism in Fortran and C/C++ programs.  LF64 PRO v8.0 supports the OpenMP v2.0 specification for Fortran.  Like automatic parallelization, OpenMP directives are used to parallelize a program that runs on a computer with more than one processor.  With OpenMP you have more control over how code is parallelized, but also more coding to do.
 
 The LF64 Linux PRO v8.0 CD includes the OpenMP v2.0 Fortran specification in PDF.  You can also view the specification at  www.lahey.com/doc.htm.  You can learn more about OpenMP at www.openmp.org.
 
Winteracter Starter Kit
Use the Winteracter
Starter Kit - WiSK - for creating true X/Windows programs with Fortran.
WiSK is a subset of the X/Winteracter Library created by Interactive
Software Services, Ltd. (X/Winteracter is available from Lahey.) X/Winteracter
is a Fortran 95-callable, 64-bit, X/Windows, user-interface and graphics
development kit. Derived from X/Winteracter, WiSK provides
a library of subroutines for window management, input handling, dialog
management, and high resolution graphics. Designed for use with X11R6 and Open Motif 2.2.
 
 X/Winteracter offers a wide range of powerful GUI capabilities to the Fortran 9x developer under X Windows, including:
 
Below are examples of WiSK's capabilities, visit the WiSK Examples Page for more examples.Multiple windows. Memory bitmap manipulation & bitmap viewer windows. Text editor windows, with optional command lines. Event handling. Text based menus, including floating menus (toolbars have still to be implemented). Dialog handling, including tabbed dialogs and nearly all control types (grid controls are the current exception).Common dialogs, e.g. file selector, message box, etc.Presentation graphics.and more! 
 
   
  
 
 
 
BLAS and LAPACK
BLAS is a library for vector and matrix operations. The BLAS thread-safe version is based on BLAS
provided on Netlib. BLAS includes 57 functions. The total number of routines for all precision types amounts to approximately 170.
 
 BLAS thread-safe version provides the following routines:
 Level 1 BLAS : Vector operations
 Level 2 BLAS : Matrix and vector operations
 Level 3 BLAS : Matrix and matrix operations
 Sparse-BLAS : Sparse vector operations
 
 The thread-safe implementation of BLAS has exactly the same subroutine names and calling
parameters as those of the Netlib baseline version.
 
 Differences include:
 
The purpose of using BLAS thread-safe version is to have a subroutine concurrently perform
operations on different sets of data that are independent from each other, and thus reduce the
time necessary to finish all the operations.the thread-safe version can be used in the environment of SMP (Symmetric Multiple
Processing)subroutines of the thread-safe version can be called from an OpenMP Fortran program 
 
 LAPACK is a library of linear algebra routines. The LAPACK thread-safe version is based on LAPACK 3.0 provided on Netlib. LAPACK includes approximately 300 functions. The total number of routines for all precision types amounts to approximately 1100.
 
 LAPACK provides the following routines:
 
The LAPACK thread-safe version, like the BLAS version, can be called from an OpenMP program in the environment of SMP.Linear equationsLinear least squares problemsEigenvalue problemsSingular value decomposition 
 
 
Fujitsu Scientific Subroutine Library 2
The Fujitsu Scientific
Subroutine Library 2 (SSL2) has been in use for years in Japan on Fujitsu
mainframe and workstation hardware. SSL2 offers over 250 optimized thread-safe routines
in the following areas:
 Linear Algebra
Matrix Storage Mode
Conversion
 Matrix Manipulation
 Linear Equations
and Matrix Inversion (Direct Method)
 Least Squares Solution
 Eigenvalues and
Eigenvectors
Eigenvalues and
Eigenvectors of a Real Matrix
 Eigenvalues and
Eigenvectors of a Complex Matrix
 Eigenvalues and
Eigenvectors of a Real Symmetric Matrix
 Eigenvalues and
Eigenvectors of a Hermitian Matrix
 Eigenvalues and
Eigenvectors of a Real Symmetric Band Matrix
 Eigenvalues and
Eigenvectors of a Real Symmetric Generalized Eigenproblem
 Eigenvalues and
Eigenvectors of a Real Symmetric Band Generalized Eigenproblem
 Nonlinear Equations
Polynomial Equations
 Transcendental Equations
 Nonlinear Simultaneous
Equations
 Extrema
Minimization of
Function with a Variable
 Unconstrained Minimization
of Multivariable Function
 Unconstrained Minimization
of Sum of Squares of Functions (Nonlinear Least Squares Solution)
 Linear Programming
 Nonlinear Programming
(Constrained Minimization of Multivariable Function)
 Interpolation
and Approximation
Interpolation
 Approximation
 Smoothing
 Series
 Transforms
Discrete Real Fourier
Transforms
 Discrete Cosine
Transforms
 Discrete Sine Transforms
 Discrete Complex
Fourier Transforms
 Laplace Transform
 Numerical Differentiation
and Quadrature
 Differential Equations
 Special Functions
Elliptic Integrals
 Exponential Integral
 Sine and Cosine
Integrals
 Fresnel Integrals
 Gamma Functions
 Error Functions
 Bessel Functions
 Normal Distribution
Functions
 Pseudo Random
Numbers
Pseudo Random Generation
 Pseudo Random Testing
 LF64 System Requirements
 
 Hardware
 
 
SoftwareIntelİ EM64T or AMDİ AMD64 64-bit processor.32 MB of RAM.70 MB of available hard disk space for LF64 Linux PRO; 40 MB for LF64 Linux
Express. 
 
X-Windows to useWiSK and view the online PDF documentation.
64-bit version of as, the GNU assembler.
64-bit version of ld, the GNU linker.
64-bit versions of C startup and support object files crt1.o, crti.o, crtn.o, crtbegin.
o, and crtend.o.
64-bit versions of C runtime and support libraries libc, libm, libpthread, librt,
libgcc, libgcc_eh, libgcc_s, and libelf.
A compatible version of the Linux operating system. Table 1 shows the versions of
Linux that are known to be compatible with LF64. Other Linux variants might be
compatible if they include kernel version 2.6.9 or later and libc version 2.3.4 or later.
 |