연구의 선진화와 생산성 향상에
필요한 최적의 소프트웨어와 컨설팅을
공급하도록 노력하겠습니다.

Lahey/Fujitsu Linux64 Fortran v8.1

속도. 신뢰성. 훌륭한 기술 지원. Lahey/Fujitsu Fortran 95. Fortran 언어 체계에서 Fortran 프로그래밍을 선도하는 표준

Fortran Language Systems

39년간의 포트란 언어 시스템 개발의 Lahey 경력과 Fujitsu사의 컴파일러 전문 기술 및 고성능 코드 생성기 기술을 결합하여 가장 생산성이 뛰어나고, PC에서 잘 지원되는 Fortran 95 언어 시스템을 제공합니다.
여러분이 새로운 포트란 프로그램을 작성하든 기존의 어플리케이션을 축소하든, 빠른 속도, 안정성 그리고 훌륭한 기술 지원이 필요하게 될 것입니다. 그렇다면, LF Linux64 Fortran을 선택하십시오.

LF64 v8.1 Delivers!

주요 기능들
  • 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
  • COMPLEX constants (Fortran 2003) supported

LF64 v8.1는 Express 와 PRO, 두가지 제품으로 판매됩니다.

LF64 Express includes the powerful Lahey/Fujitsu Fortran 95 optimizing compiler, command line debugger, online documentation, and free e-mail support. LF64 Performance.
  • LF64 Optimizations.
  • Link GNU C and assembly object files.
  • Legacy Fortran Support.
  • ANSI/ISO-Compliant Fortran 95.
  • Free Technical Support.
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).
  • Auto-Parallelization
  • OpenMP compatibility
  • Winteracter Starter Kit.
  • BLAS and LAPACK
  • Fujitsu Scientific Subroutine Library 2
  • Automake
  • Free Technical Support

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.1 on your code today!

LF64 Optimizations

Basic Optimization
  • 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
Program Reconstruction Optimizations
  • Loop unrolling
  • Loop interchange
Procedure Optimization
  • Inlining mathematical functions
  • Stack optimization
Others
  • 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.1 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.1 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:
  • 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!
Below are examples of WiSK's capabilities, visit the WiSK Examples Page for more examples.

BLAS and LAPACK

BLAS is a library for vector and matrix operations. The BLAS thread-safe version is based on BLAS provided on Netlib. Included in LF95 v6.2 is an optimized version for the Pentium 4 with SSE2 instructions. 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 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
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.
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:
  • Linear equations
  • Linear least squares problems
  • Eigenvalue problems
  • Singular value decomposition
The LAPACK thread-safe version, like the BLAS version, can be called from an OpenMP program in the environment of SMP.

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. Included in LF95 v6.2 is an optimized version for the Pentium 4 with SSE2 instructions. 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
  • Intel? 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.
Software
  • 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.
LF64 v8.1 supported distributions
  • CentOS 5
  • 2.6.18 2.5-18
  • Fedora 8
  • 2.6.23 2.7-2
  • Ubuntu 8.04
  • 2.6.24 2.7-10
  • Open SUSE 10.3
  • 2.6.22 2.6.1
(*) The latest patches should be applied.