Friday Jun 26, 2009

Sun Studio 12 U1

The latest production release includes improved binary application performance, full OpenMP 3.0 support, profiling of distributed MPI applications, unified application and system profiling using Solaris DTrace technology (DLight), a new standalone graphical debugger (dbxTool) and much more
C/C++/Fortran 95 Compilers
The Sun C, C++, and Fortran compilers include advanced features for developing applications on Sun Solaris SPARC and x86/x64 platforms. They utilize a common optimizing backend code generator, and accept standard C, C++, and Fortran with extensions.

The Sun Studio Performance Tools
The Sun Studio performance tools are designed to help answer questions about application performance. This article discusses the kinds of performance questions that users typically ask.

Debugging
Successful program debugging is more an art than a science. dbx is an interactive, source-level, post-mortem and real-time command-line debugging tool plus much more.

Performance Analyzer
The Sun Studio Performance Analyzer can help you assess the performance of your code, identify potential performance problems, and locate the part of the code where the problems occur. The Performance Analyzer can be used from the command line or from a graphical user interface.

Multithreaded (Parallel) Computing
Two critical forces are shaping the direction of software development. One is the deep adoption of parallel computing. The other is the move toward service-oriented architecture. But how prepared are the software developers and tool vendors for the challenge of working in parallel computing environments?

Performance Tuning and Optimization
Sun Studio C, C++, and Fortran compilers offer a rich set of compile-time options for specifying target hardware and advanced optimization techniques. But knowing which options to pick for a given application can be tricky.

Numerical Computation
The floating-point environment on Sun SPARC and x86/x64 platforms enables you to develop robust, high-performance, portable numerical applications. The floating-point environment can also help investigate unusual behavior of numerical programs written by others.

Sun Studio on Linux
The latest production release of Sun Studio 12 software has an IDE, performance analyzer, debugger, and better support for the GNU Compiler Collection (GCC). And, with the release of Sun Studio 12, Linux developers can now take advantage of Sun's world-class compilers and tools on the Linux platform.

Sun Performance Library
The Sun Performance Library is a set of optimized, high-speed mathematical subroutines for solving linear algebra and other numerically intensive problems. It is based on a collection of public domain applications available from Netlib. These public domain applications have been enchanced and optimized for Sun high-performance platforms.

High Performance Computing
High Performance and Technical Computing (HPTC) applies numerical computation techniques to highly complex scientific and engineering problems. Sun Studio compilers and tools provide a seamless, integrated environment from desktop to TeraFLOPS for both floating-point and data-intensive computing.
Studio 12u1 Download

Friday Oct 19, 2007

sun studio 12 installation experience

Recently I need to help a customer to test some code, and he is will to try it on Solaris

After the Solaris 08/07 installed on the new servers, one need to install the latest Sun Studio 12

As usually I search for the patches info and find this pages Studio 12 patches

I busy download all these patches for solaris 10

I also download the latest Sun Studio 12 from download Use the simple commands batch_installer --accept_sla It finish in no time

I then try to install the patches and find that most patches are already installed and I also find a statement on this pages Sun Studio 12 ML editions is the Sun studio 12 plus patches sunstudio

Sun Studio 12 Multi-Language Release Now Available! Sun Studio 12 in English, Japanese and Simplified Chinese, with IDE enhancements and bundled product patches!

I wish that it has a link tell me which patches was part of the releases

I just need to install the following patches

  • 126498-02
  • 126496-02
  • 124873-02
  • 127112-01

Friday Jan 14, 2005

what's new in pathscale 2.0

pathscale EKO compiler version 2.0 has the following new features

  • full EM64T support
  • pathhow-compiled command to display compilation options and compiler version currently being used
  • full OPENMP 2.0 in fortran with the option -mp
  • include many Fortran intrinsics for g77 or PGI and one must use -intrinsic=PGI or -intrinsic=G77

Thursday Jan 06, 2005

observations on pathscale and pgroup compiler

during the break I spend some time going through the docs for pathscale (1.4) and pgroup CDK compilers (5.2) The followings are my observations:

    EKO 1.4
  • EKO 1.4 doesnot support openmp (2.0 will support fortran openmp)
  • EKO concentrate on opteron, Athlon64 and Athlon64FX (it also support EM64T)
  • it has node lock to macaddress and uid or floating license and number of users and lease time
  • EKO 1.4 is a 32-bit apps but can generate 64-bit or 32-bit binary
  • EKO 1.4 support small or medium memeory models, 2GB is the boundary
  • EKO 1.4 has assign() procedure to assign the I/O
  • pathopt can use XML option file to do multiple different build
  • PGI CDK 5.2-2
  • support node lock and network multiple user license
  • support HFH with pghfh
  • support window env
  • ACML 2.1
  • support openmp
  • include MPICH 1.2.6
  • TORQUE1.0.1
  • scaLAPACK
  • some tutorial from OSC anf HPF

Thursday Dec 23, 2004

mixing C library in Fortran

recently LK send me an query from customer about calling C library in Fortran

question is the following

We have a f90 code, which uses rand, irand, srand fnctions a lot. That code works fine on other platform, e.g., SP, but on the Sun workstation, the code cannot be compiled because of no_found srand. Enclosed below please find a small example that I created just for demonstrating the problem. f90 -xpp=cpp use_srand.f90 -lc -lm gives this error: Undefined first referenced symbol in file srand_ use_srand.o ld: fatal: Symbol referencing errors. No output written to a.out Is there any tricky stuff in calling C library?

PROGRAM use_srand
INTEGER\*4 :: SEED(2),time,current_time,irand
EXTERNAL srand, irand
current_time=time()
print\*,' Current_time ', current_time
call srand(current_time)
print\*,' Current_time ', current_time
SEED(1)=irand(current_time)
SEED(2)=irand(current_time+1)
print\*,' SEED(1) ', SEED(1), ' SEED(2) ', SEED(2)
stop
end

Since I donot work with codes everyday so I look it up on http://docs.sun.com/ Sun have many different version of compiler, but in each version there are instruction about calling C library in Fortran

I also have two internal machines to test the codes, one has FD7 compiler one has SS9

FD7 Fortran reference manul chapter11

11.1.4 Underscores in Routine Names
The Fortran compiler normally appends an underscore (_) to the names of subprograms appearing both at entry point definition and in calls. This convention differs from C procedures or external variables with the same user-assigned name. Almost all Fortran library procedure names have double leading underscores to reduce clashes with user-assigned subroutine names.
There are three usual solutions to the underscore problem:

  • In the C function, change the name of the function by appending an underscore to that name
  • Use the C() pragma to tell the Fortran compiler to omit those trailing underscores.
  • Use the f95 -ext_names option to compile references to external names without underscores.
Use only one of these solutions.

The examples in this chapter could use the C() compiler pragma to avoid underscores. The C() pragma directive takes the names of external functions as arguments. It specifies that these functions are written in the C language, so the Fortran compiler does not append an underscore as it ordinarily does with external names. The C()directive for a particular function must appear before the first reference to that function. It must also appear in each subprogram that contains such a reference. The conventional usage is:
EXTERNAL ABC, XYZ !$PRAGMA C( ABC, XYZ )
If you use this pragma, the C function does not need an underscore appended to the function name. (Pragma directives are described in the Fortran User's Guide

I make the following change


PROGRAM use_srand
INTEGER\*4 :: SEED(2),time,current_time,irand
EXTERNAL srand , irand
!$PRAGMA C(srand)
current_time=time()
print\*,' Current_time ', current_time
call srand(current_time)
print\*,' Current_time ', current_time
SEED(1)=irand(current_time)
SEED(2)=irand(current_time+1)
print\*,' SEED(1) ', SEED(1), ' SEED(2) ', SEED(2)
stop
end

  • compile f90 linda.f90
  • run ./a.out
    Current_time 1103814443
    Current_time 1103814443
    SEED(1) 340799264 SEED(2) 2018393530

For SS9 , the docs said the followings:
There are three usual solutions to the underscore problem:

  • In the C function, change the name of the function by appending an underscore to that name.
  • Use the BIND(C) attribute declaration to indicate that an external function is a C language function.
  • Use the f95 -ext_names option to compile references to external names without underscores.
Use only one of these solutions.
The examples in this chapter could use the BIND(C) attribute declaration to avoid underscores. BIND(C) declares the C external functions that can be called from Fortran, and the Fortran routines that can be called from C as arguments. The Fortran compiler does not append an underscore as it ordinarily does with external names. The BIND(C) must appear in each subprogram that contains such a reference. The conventional usage is:
FUNCTION ABC EXTERNAL XYZ
BIND(C) ABC, XYZ
Here the user has specified not only that XYZ is an external C function, but that the Fortran caller, ABC, should be callable from a C function. If you use BIND(C), the C function does not need an underscore appended to the function name
so I make the similar change and it compile and run, just like the FD7 case.
PROGRAM use_srand
INTEGER\*4 :: SEED(2),time,current_time,irand
EXTERNAL srand , irand
BIND(srand)
current_time=time()
print\*,' Current_time ', current_time
call srand(current_time)
print\*,' Current_time ', current_time
SEED(1)=irand(current_time)
SEED(2)=irand(current_time+1)
print\*,' SEED(1) ', SEED(1), ' SEED(2) ', SEED(2)
stop
end

Thursday Jun 10, 2004

use prism to debug the F95 program

use PRISM to debug F95 program

A professor write to me about the problem using PRISM to debug the F95 program.

problem

He said it used to work but now the system had been upgraded from solaris 8 to solaris 9 and things do not work. Since I donot deal with PRISM everyday, one donot how to answer to his email, we decided to have a visit.

I ask him to show me what he ty to do:

  • he show me how he use f95 to compile the program and produce a,out
  • run prism a.out
  • what he try to load file it said have problem
I said , why do we try to use mpf95 to compile

it work

About

hstsao

Search

Top Tags
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today