Oracle Solaris Studio 12.3 Part No: E26452 2011 12
Copyright 2011, Oracle and/or its affiliates. All rights reserved. U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are commercial computer software pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government. redundancy Oracle Java Oracle Corporation Intel Intel Xeon Intel Corporation SPARC SPARC International, Inc. AMD Opteron AMD AMD Opteron Advanced Micro Devices, Inc. UNIX The Open Group 120220@25097
...5 Oracle Solaris Studio 12.3... 9 Oracle Solaris Studio...9 Oracle Solaris Studio... 10 Oracle Solaris Studio IDE... 12 Oracle Solaris Studio... 14 C... 15 C++... 16 Fortran 95... 18 C/C++/Fortran... 19 OpenMP 3.1... 19 Sun Performance Library... 20 dmake... 21... 21 dbx... 22 IDE dbx...23 dbxtool dbx... 24... 26 Discover... 26 Uncover... 27... 29... 30... 31 (SPOT)... 38 DLight... 40 IDE... 44... 49 3
4
Oracle Solaris Studio C C++ Fortran Oracle Solaris Studio Oracle Solaris SPARC Oracle Solaris Linux x86 x86 x86 64 32 x86 x64 64 x86 CPU 32 x86 x86 32 Linux Linux x86 Oracle Solaris SPARC x86 Oracle Solaris Oracle Solaris Studio 12.3 5
Oracle Solaris Studio Oracle Solaris Studio Oracle Solaris Studio Documentation Web dbxtool DLight IDE F1 Web URL Web Oracle Oracle Oracle Oracle Solaris Studio Oracle Technical Network Web 6 Oracle Solaris Studio 12.3 2011 12
Oracle Oracle My Oracle Support http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs P 1 AaBbCc123 AaBbCc123 AaBbCc123.login ls -a system% system% su password: rm filename 5 \ sun% grep ^#define \ XV_VERSION_STRING Oracle Solaris OS UNIX Oracle Solaris C 7
machine_name% command y n [filename] C machine_name# command y n [filename] Bash Korn Bourne $ command y n [filename] Bash Korn Bourne # command y n [filename] [] filename ( ) 1 ( : Shift ) Enter Return (-) 2 Ctrl-D Control D 8 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio 12.3 Oracle Solaris Studio Solaris Linux C C++ Fortran SPARC x86 Oracle Solaris Studio Oracle Solaris Studio 2 Oracle Solaris Studio SPARC x86 x64 Oracle Solaris 10 Oracle Solaris 11 x86 x64 Oracle Linux C C++ Fortran Oracle Sun Oracle Solaris Studio SPARC T4 SPARC T3 UltraSPARC T2 UltraSPARC T2 Plus Intel Xeon AMD Opteron CPU Oracle Solaris Studio Oracle Solaris Studio IDE Oracle Solaris Studio IDE Oracle Solaris Studio DTrace Oracle Solaris 9
Oracle Solaris Studio IDE C C++ Fortran Oracle Solaris Studio (dbx) IDE make (dmake) IDE (dbxtool) (dbx) DTrace Oracle Solaris Oracle Sun Oracle Solaris Oracle Solaris Studio Oracle Solaris Studio Oracle Solaris IDE IDE IDE dmake make IDE DLight IDE Emacs vi IDE Oracle Solaris Studio Oracle Sun Oracle Solaris 10 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio IDE Oracle Solaris Studio Oracle Solaris Studio 12.3 11
Oracle Solaris Studio IDE Oracle Solaris Studio Oracle Solaris Studio IDE Oracle Solaris Studio IDE NetBeans IDE Oracle Solaris Studio IDE NetBeans IDE NetBeans C/C++ NetBeans IDE Oracle Solaris Studio Oracle Solaris Studio IDE Oracle Solaris Studio C C++ Fortran dmake dbx IDE Oracle Solaris DTrace Oracle Solaris Studio Oracle Solaris Studio IDE API IDE UI Oracle Solaris Studio IDE IDE IDE % solstudio Quote IDE 12 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio IDE C C++ Fortran IDE IDE ( ) IDE IDE IDE IDE Studio C C++ Fortran dmake dbx Oracle Solaris Studio 12.3 13
Oracle Solaris Studio GNU PATH IDE GNU Oracle Solaris Studio IDE IDE F1 IDE Oracle Solaris Studio 12.3 IDE IDE NetBeans IDE C/ C++ Learning Trail Oracle Solaris Studio IDE NetBeans Oracle Solaris Studio IDE Oracle Solaris Studio Oracle Solaris Studio C C++ Fortran C C++ Fortran (32 64 ) Oracle Solaris Studio Oracle Solaris Studio -On 1 5 n 14 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio -fast -fast -g dbx -g Oracle Solaris Studio C Oracle Solaris Studio C Programming Language - C (ISO/IEC 9899:1999) Programming Languages-C (ISO/IEC 9899:1990) C OpenMP 3.1 API C cc cc cc cc [compiler-options] source-files [-llibrary]... cc -flags.c.s.s.i -l library Oracle Solaris Studio 12.3 15
Oracle Solaris Studio a.out -ofilename -c (.o) test.c a.out : % cc test.c test1.c test2.c test : % cc -o test test1.c test2.c 2 : % cc -c test1.c % cc -c test2.c % cc test1.o test2.o C C cc Oracle Solaris Studio 12.3: C cc (1) Oracle Solaris Studio 12.3 C++ Oracle Solaris Studio C++ (CC) ISO International Standard for C++, ISO IS 14822:2003, Programming Language C++ CC OpenMP 3.1 API OpenMP 3.1 API Oracle Solaris Studio 12.3 C++ CC 16 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio CC CC CC [compiler-options] source-files [-llibrary]... CC -flags CC.c.C.cc.cxx.c++.cpp.i -l library a.out -ofilename -c (.o) test.c a.out : % CC test.c 2 test1.c test2.c test : % CC -c test1.c % CC -c test2.c % CC -o test test1.o test2.o C++ C++ CC Oracle Solaris Studio 12.3: C++ CC (1) Oracle Solaris Studio 12.3 Oracle Solaris Studio 12.3 17
Oracle Solaris Studio Fortran 95 Oracle Solaris Studio Fortran Oracle Solaris Fortran Fortran77 Fortran90 Fortran95 OpenMP 3.1 f95 Oracle Solaris Studio Fortran f95 f95 f95 [compiler-options] source-files... [-llibrary] f95 -flags.f.f.f90.f95.f90.f95.for 1 Fortran -l library 2 Fortran : % f95 -o hello_1 foo.f bar.f : % f95 -c -o bar.o bar.f % f95 -c -o foo.o foo.f % f95 -o hello_1 bar.o foo.o libexample : % f95 -o hello_1 foo.f bar.f -lexample Fortran Fortran 95 f95 Oracle Solaris Studio 12.3: Fortran f95(1) 18 Oracle Solaris Studio 12.3 2011 12
OpenMP 3.1 Oracle Solaris Studio 12.3 C/C++/Fortran Oracle Solaris Studio Oracle Solaris C libc C++ libcrun /usr/lib intro(3) man intro.3 /usr/lib C libc libm cc CC /usr/lib -l libmalloc cc CC -lmalloc Fortran Oracle Solaris Studio Fortran C Oracle Solaris /usr/lib C-Fortran Fortran Oracle Solaris OpenMP 3.1 Oracle Solaris Studio OpenMP 3.1 API OpenMP OpenMP OpenMP -xopenmp OMP_NUM_THREADS Oracle Solaris Studio 12.3 19
Sun Performance Library OMP_NUM_THREADS 2 Oracle Solaris Studio 12.3: OpenMP API Sun Performance Library Sun Performance Library Sun Performance Library http://www.netlib.org Netlib Sun Sun Performance Library Sun Performance Library Sun Performance Library (MP) Sun Performance Library Fortran 95 C Netlib SPARC AMD Sun Performance Library -l - library Performance Library Fortran : % f95 -dalign filename.f -library=sunperf Performance Library -dalign Performance Library C C++ : % cc filename.c -library=sunperf % CC filename.cpp -library=sunperf Sun Performance Library -library=sunperf -staticlib=sunperf Sun Performance Library Oracle Solaris Studio 12.2:Sun Performance Library User s Guide Oracle Solaris Studio 3p Sun Performance Library 20 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio 12.3 dmake dmake make(1) dmake make(1) dmake dmake make dmake.dmakerc Oracle Solaris Studio IDE IDE dmake IDE dmake make IDE dmake.dmakerc Oracle Solaris Studio 12.3: (dmake) dmake(1) dmake Oracle Solaris Studio 12.3 Oracle Solaris Studio dbx dbx C C++ Fortran dbx Oracle Solaris Studio 12.3 21
dbx dbx Oracle Solaris Studio IDE dbxtool dbx 22 dbx 23 IDE dbx 24 dbxtool dbx dbx dbx dbx dbx [options] [program-name -] [process-id] dbx test : % dbx test dbx ID 832 : % dbx - 832 dbx dbx dbx C C++ main() (dbx) (dbx) stop in main run 22 Oracle Solaris Studio 12.3 2011 12
(dbx) stop in main (4) stop in main (dbx) run Running: quote_1 (process id 5685) (dbx) step next print display dbx dbx(1) dbx Oracle Solaris Studio 12.3: dbx (dbx) help dbx dbx Oracle Solaris Studio 12.3 IDE dbx Oracle Solaris Studio IDE dbx IDE IDE IDE 1 dbx IDE IDE dbx Oracle Solaris Studio 12.3 23
1 dbx (dbx) IDE dbx IDE Oracle Solaris Studio 12.3 IDE dbxtool dbx Oracle Solaris Studio IDE dbxtool dbx IDE dbxtool C C++ Fortran dbxtool 24 Oracle Solaris Studio 12.3 2011 12
% dbxtool executable-name dbxtool IDE dbxtool dbx (dbx) dbxtool quote_1 dbx (dbx) dbxtool dbxtool dbxtool (1) dbxtool Oracle Solaris Studio 12.3: dbxtool dbxtool Oracle Solaris Studio 12.3 25
Oracle Solaris Studio Discover Uncover C C++ Discover Uncover Discover (Discover) -g Discover Discover -g discover Discover Discover HTML discover(1) Discover discover -w - % cc -g -O2 test.c -o test.prep % discover -w - -o test.disc test.prep %./test.disc ERROR (UMR): accessing uninitialized data from address 0x5000c (4 bytes) at: foo() + 0xdc <ui.c:6> 26 Oracle Solaris Studio 12.3 2011 12
3: int *t; 4: foo() { 5: t = malloc(5*sizeof(int)); 6:=> printf("%d0, t[1]); 7: } 8: 9: main() main() + 0x1c _start() + 0x108 block at 0x50008 (20 bytes long) was allocated at: malloc() + 0x260 foo() + 0x24 <ui.c:5> 2: 3: int *t; 4: foo() { 5:=> t = malloc(5*sizeof(int)); 6: printf("%d0, t[1]); 7: } 8: main() + 0x1c _start() + 0x108 ***************** Discover Memory Report ***************** 1 block at 1 location left allocated on heap with a total size of 20 bytes 1 block with total size of 20 bytes malloc() + 0x260 foo() + 0x24 <ui.c:5> 2: 3: int *t; 4: foo() { 5:=> t = malloc(5*sizeof(int)); 6: printf("%d0, t[1]); 7: } 8: main() + 0x1c _start() + 0x108 discover(1) Oracle Solaris Studio 12.3 Discover Uncover Uncover Uncover Uncover Oracle Solaris Studio 12.3 27
Uncover Oracle Solaris Studio -g Uncover uncover Uncover binary.uc binary.uc Uncover HTML Web Uncover test test % cc -g -O2 test.c -o test % uncover test % test test.uc test test.uc test : % uncover test.uc HTML : % uncover -H test.html test.uc uncover(1) Oracle Solaris Studio 12.3 Discover Uncover 28 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio 3 Oracle Solaris Studio C C++ - xanalyze=code Discover -a Uncover -a Uncover 3 Discover Uncover a.out % code-analyzer a.out a.out Oracle Solaris Studio 12.3 29
Oracle Solaris Studio 30 Oracle Solaris Studio 12.3 2011 12
(SPOT) Web DLight IDE IDE DLight Oracle Solaris Studio er_print Oracle Solaris Studio C C++ Fortran Oracle Sun Oracle Sun DLight Oracle Sun OpenMP MPI Oracle Solaris Studio 12.3 31
2 1. 2. er_print (Oracle Solaris ) MPI (Message Passing Interface) C C++ Fortran Java collect dbx collect Oracle Solaris Studio IDE collect : % collect [collect-options] executable executable-options collect -c on test.1.er test.1.er.er synprog collect % collect synprog Creating experiment database test.1.er... 00:00:00.000 ===== (15909) synprog run 00:00:00.002 ===== (15909) Thu 10 Nov 11 15:12:18 Stopwatch calibration 32 Oracle Solaris Studio 12.3 2011 12
OS release 5.10 -- enabling microstate accounting 5.10. 0.001498 s. (32.8 % of 0.004568 s.) -- inner N = 1000, avg = 1.498 us., min = 0.721, max = 596.665 0.003482 s. (72.9 % of 0.004776 s.) -- outer N = 1000, avg = 3.482 us., min = 2.883, max = 599.007 00:00:00.007 ===== (15909) Begin commandline icpu.md.cpu.rec.recd.dousl.gpf.fitos.uf.ec.tco.b.nap.sig.sys.so.sx.so 00:00:00.008 ===== (15909) start of icputime 3.019055 wall-secs., 2.328491 CPU-secs., in icputime 00:00:03.027 ===== (15909) start of muldiv 3.012635 wall-secs., 2.675769 CPU-secs., in muldiv 00:00:06.040 ===== (15909) start of cputime 3.000567 wall-secs., 2.591964 CPU-secs., in cputime 00:00:09.041 ===== (15909) start of recurse... (output edited to conserve space)... test.1.er er_print Oracle Solaris Studio 12.3: collect(1) (GUI) CPU MPI MPI MPI analyzer analyzer % analyzer [experiment-list] experiment-list 1 Oracle Solaris Studio 12.3 33
test.1.er : % analyzer test.1.er synprog test.1.er synprog CPU gpf_work gpf_work 34 Oracle Solaris Studio 12.3 2011 12
Oracle Solaris Studio 12.3: analyzer(1) er_print er_print MPI MPI Oracle Solaris Studio 12.3 35
er_print er_print % er_print -command experiment-list 1 experiment-list 1 er_print % er_print -functions test.1.er Functions sorted by metric: Exclusive User CPU Time Excl. Incl. Name User CPU User CPU sec. sec. 57.290 57.290 <Total> 8.116 8.116 gpf_work 7.305 7.305 real_recurse 4.413 4.413 bounce_a 3.502 3.502 my_irand 3.082 3.082 muldiv 3.032 3.032 cputime 3.022 3.022 icputime 3.012 3.012 sigtime_handler 3.002 3.002 underflow 2.242 2.242 dousleep 2.242 2.242 inc_middle 1.661 1.661 gethrtime 1.511 1.511 inc_entry 1.511 1.511 inc_exit 1.121 1.121 tailcall_c 1.101 3.322 tailcall_a 1.101 2.222 tailcall_b 0.781 0.781 gettimeofday 0.781 0.781 inc_func 0.771 0.771 gethrvtime 0.761 3.973 systime 0.751 0.751 inc_body 0.751 0.751 inc_brace 0.490 0.490 ext_macro_code.. lines deleted 36 Oracle Solaris Studio 12.3 2011 12
er_print er_print (er_print) er_print Oracle Solaris Studio 12.3: er_print(1) POSIX API Solaris API OpenMP 2 1 2 1 2 OpenMP OpenMP OpenMP : 1. -xinstrument=datarace discover -i datarace Oracle Solaris Studio 12.3 37
2. -r race -r deadlock -r all collect 3. tha er_print OpenMP tha(1) Oracle Solaris Studio 12.3: (SPOT) (SPOT) SPOT 38 Oracle Solaris Studio 12.3 2011 12
Web SPOT SPOT Oracle Solaris Studio SPOT SPOT collect 1 SPOT er_print er_html Web SPOT SPOT -O -g SPOT SPOT : % spot executable SPOT : % spot -P process-id SPOT SPOT PID SPOT PID SPOT SPOT Oracle Solaris Studio 12.3 39
SPOT Web Oracle Solaris Studio 12.2:Simple Performance Optimization Tool (SPOT) User s Guide DLight DLight Oracle Solaris (DTrace) DLight DLight DLight DTrace DLight dtrace_user dtrace_proc dtrace_kernel DLight : % dlight 40 Oracle Solaris Studio 12.3 2011 12
DLight DTrace DLight DLight DLight DLight CPU CPU CPU CPU CPU I/O CPU CPU I/O I/O I/O Oracle Solaris Studio 12.3: DLight ProfilingDemo DLight Oracle Solaris Studio 12.3 41
DLight DLight DLight 42 Oracle Solaris Studio 12.3 2011 12
- - CPU - CPU CPU CPU - CPU CPU CPU DLight Oracle Solaris Studio 12.3 43
CPU DLight Oracle Solaris Studio 12.3: DLight DLight IDE IDE IDE DLight 44 Oracle Solaris Studio 12.3 2011 12
C C++ Fortran DTrace Studio Oracle Solaris Linux Oracle Solaris IDE DTrace DLight DTrace IDE DTrace IDE C/C++/Fortran DTrace IDE Oracle Solaris Studio 12.3 45
IDE DLight 2 46 Oracle Solaris Studio 12.3 2011 12
Discover Oracle Solaris Studio 12.3 47
48 Oracle Solaris Studio 12.3 2011 12
F1 IDE IDE C/C++/Fortran Oracle Technology Network Oracle Solaris Studio Oracle Solaris Studio Oracle Solaris Studio 12.3 49
50