ibm power systems compiler roadmap · compilation technology scicomp barcelona | may 21, 2009 @...

38
Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault IBM Toronto Laboratory [email protected]

Upload: others

Post on 26-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation

Software Group

IBM Power SystemsCompiler Roadmap

Roch Archambault

IBM Toronto Laboratory

[email protected]

Page 2: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

2

IBM Rational Disclaimer

© Copyright IBM Corporation 2008. All rights reserved. The information contained

in these materials is provided for informational purposes only, and is provided AS IS

without warranty of any kind, express or implied. IBM shall not be responsible for

any damages arising out of the use of, or otherwise related to, these materials.

Nothing contained in these materials is intended to, nor shall have the effect of,

creating any warranties or representations from IBM or its suppliers or licensors, or

altering the terms and conditions of the applicable license agreement governing the

use of IBM software. References in these materials to IBM products, programs, or

services do not imply that they will be available in all countries in which IBM

operates. Product release dates and/or capabilities referenced in these materials

may change at any time at IBM’s sole discretion based on market opportunities or

other factors, and are not intended to be a commitment to future product or feature

availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the

Telelogic logo, and other IBM products and services are trademarks of the

International Business Machines Corporation, in the United States, other countries

or both. Other company, product, or service names may be trademarks or service

marks of others.

Page 3: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

3

Agenda

Overall Roadmap

The Power Systems Compiler Products

Detailed Roadmaps

Common Features & Compiler Architecture

XL Fortran

XL C/C++

XL Compilers for Blue Gene

XL Compilers for Cell

XL UPC Compiler

Examples of Tasks in OpenMP 3.0

New –qstrict suboptions

Online Documentation

Q&A

Page 4: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

4

Roadmap of XL Compiler Releases

Dev Line

2007 2008 2009

All information subject to change without notice

XL C/C++ Vxx

XL Fort Vxx Linux

XL C/C++ V9.0

XL Fort V11.1 BG/P

XL C/C++ V9.0

XL Fort V11.1 BG/L

SLES 10

SLES 9

XL C/C++ V9.0 for CELL

XL C/C++ Vxx

XL Fort Vxx AIX

SLES 10 SLES 11

XL Fort V11.1 for CELL

XL C/C++ V10.1

XL Fort V12.1 AIX

XL C/C++ V10.1

XL Fort V12.1 Linux

XL C/C++ V10.1 for CELL

2010 and

beyond

Page 5: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

5

The Power Systems Compiler Products: Previous Versions

All POWER4, POWER5, POWER5+ and PPC970 enabled

XL C/C++ Enterprise Edition V8.0 for AIX

XL Fortran Enterprise Edition V10.1 for AIX

XL C/C++ Advanced Edition V8.0 for Linux (SLES 9 & RHEL4)

XL Fortran Advanced Edition V10.1 for Linux (SLES 9 & RHEL4)

XL C/C++ Advanced Edition V8.0.1 for Linux (SLES 10 & RHEL4)

XL Fortran Advanced Edition V10.1.1 for Linux (SLES 10 & RHEL4)

XL C/C++ Enterprise Edition for AIX, V9.0 (POWER6 enabled)

XL Fortran Enterprise Edition for AIX, V11.1 (POWER6 enabled)

XL C/C++ Advanced Edition for Linux, V9.0 (POWER6 enabled)

XL Fortran Advanced Edition for Linux, V11.1 (POWER6 enabled)

Page 6: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

6

The Power Systems Compiler Products: Latest Versions

All POWER4, POWER5, POWER6 and PPC970 enabled

XL C/C++ for AIX, V10.1 (July 2008)

XL Fortran for AIX, V12.1 (July 2008)

XL C/C++ for Linux, V10.1 (September 2008)

XL Fortran for Linux, V12.1 (September 2008)

Blue Gene (BG/L and BG/P) enabled

XL C/C++ Advanced Edition for BG/L, V9.0

XL Fortran Advanced Edition for BG/L, V11.1

XL C/C++ Advanced Edition for BG/P, V9.0

XL Fortran Advanced Edition for BG/P, V11.1

Cell/B.E. cross compiler products:

XL C/C++ for Multicore Acceleration for Linux on Power Systems, V10.1 (4Q2008)

XL C/C++ for Multicore Acceleration for Linux on x86 Systems, V10.1 (4Q2008)

XL Fortran for Multicore Acceleration for Linux on System p, V11.1

Page 7: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

7

The Power Systems Compiler Products: Latest Versions

Technology Preview currently available from alphaWorks

XL UPC language support on AIX and Linux

Download: http://www.alphaworks.ibm.com/tech/upccompiler

XL C/C++ for Transactional Memory for AIX

Download: http://www.alphaworks.ibm.com/tech/xlcstm

CDT for AIX

Download: http://www.alphaworks.ibm.com/tech/cremoteide

IBM Debugger for AIX (with Fortran support)

Download: https://www.ibm.com/services/forms/preLogin.do?source=swerpsw

Page 8: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

8

The Power Systems Compiler Products: Future Versions

POWER7 support

XL C/C++ for AIX, Vxx (2010 and beyond)

XL Fortran for AIX, Vxx (2010 and beyond)

XL C/C++ for Linux, Vxx (2010 and beyond)

XL Fortran for Linux, Vxx (2010 and beyond)

All information subject to change without notice

Page 9: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

9

Common Fortran, C and C++ Features

Linux (SLES and RHEL) and AIX, 32 and 64 bit

Debug support

Debuggers on AIX:

Total View (TotalView Technologies), DDT (Allinea), IBM Debugger and DBX

Debuggers on Linux:

TotalView, DDT and GDB

Full support for debugging of OpenMP programs (TotalView)

Snapshot directive for debugging optimized code

Portfolio of optimizing transformations

Instruction path length reduction

Whole program analysis

Loop optimization for parallelism, locality and instruction scheduling

Use profile directed feedback (PDF) in most optimizations

Tuned performance on POWER3, POWER4, POWER5, PPC970, PPC440,

PPC450, POWER6 and CELL systems

Optimized OpenMP

Page 10: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

10

TPO

IPA

Objects

Other

Objects

System

Linker

Optimized

Objects

EXE

DLL

Partitions

TOBEY

C FE C++ FEFORTRAN

FECompile Step

Optimization

Libraries

PDF info

Link Step

Optimization

O4 and O5

Wcode+

Wcode

Wcode+

Instrumented

runs

WcodeWcode

Wcode

Wcode

IBM XL Compiler Architecture

noopt and O2

O3, O4 and O5

Page 11: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

11

XL Fortran Roadmap: Strategic Priorities

Superior Customer Service

Continue to work closely with key ISVs and customers in scientific and technical

computing industries

Compliance to Language Standards and Industry Specifications

OpenMP API V2.5 (Full) and OpenMP API V3.0 (Partial)

Fortran 77, 90 and 95 standards

Fortran 2003 Standard

Exploitation of Hardware

Committed to maximum performance on POWER4, PPC970, POWER5,

POWER6, PPC440, PPC450, CELL and successors

Continue to work very closely with processor design teams

Page 12: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

12

XL Fortran Version 12.1 for AIX/Linux – July/September 2008

New features since XL Fortran Version 10.1:

Continued rollout of Fortran 2003

Compliant to OpenMP V2.5

Perform subset of loop transformations at –O3 optimization level

Tuned BLAS routines (DGEMM and DGEMV) are included in compiler runtime (libxlopt)

Recognize matrix multiply and replace with call to DGEMM

Runtime check for availability of ESSL

Support for auto-simdization and VMX intrinsics (and data types) on AIX

Inline MASS library functions (math functions)

AsdasdPartial support for OpenMP V3.0

Fine grain control for –qstrict option

Improved compile/link time

More Interprocedural data reorganization optimizations

Page 13: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

13

XL C/C++ Roadmap: Strategic Priorities

Superior Customer Service

Compliance to Language Standards and Industry Specifications

ANSI / ISO C and C++ Standards

OpenMP API V3.0

Exploitation of Hardware

Committed to maximum performance on POWER4, PPC970, POWER5, PPC440,

POWER6, PPC450, CELL and successors

Continue to work very closely with processor design teams

Exploitation of OS and Middleware

Synergies with operating system and middleware ISVs (performance, specialized

function)

Committed to AIX Linux affinity strategy and to Linux on pSeries

Reduced Emphasis on Proprietary Tooling

Affinity with GNU toolchain

Page 14: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

14

XL C/C++ Version 10.1 for AIX/Linux – July/September 2008

New features since XL C/C++ Version 8.0:

Exploit “restrict” keyword in C 1999

Partial compliance to C++ TR1 libraries and Boost 1.34.1

Support for -qtemplatedepth which allows the user to control number of

recursive template instantiations allowed by the compiler.

Exploit DFP and VMX on Power6.

Improved inline assembler support

Full support for OpenMP V3.0

Fine grain control for –qstrict option

Improved compile/link time

More Interprocedural data reorganization optimizations

Page 15: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

15

Blue Gene Compilers

XL C/C++ Advanced Edition for BG/P, V9.0 andXL Fortran Advanced Edition for BG/P, V11.1 Support for OpenMP, automatic parallelization and dynamic linking

Performance improvements: SIMD and other general optimizations

MASS/MASSV performance improvements

FEN (Front End Node) is SLES10

March 2009 Fortran PTF available:

http://www.ibm.com/support/docview.wss?rs=43&uid=swg24022541

March 2009 C/C++ PTF available:

http://www.ibm.com/support/docview.wss?rs=2239&uid=swg24020540

XL C/C++ Advanced Edition for BG/L, V9.0 andXL Fortran Advanced Edition for BG/L, V11.1 Same code base as BG/P release except FEN is SLES 9

GA is one month after BG/P GA

April 2009 Fortran PTF available:

http://www.ibm.com/support/docview.wss?rs=43&uid=swg24022947

April 2009 C/C++ PTF available:

http://www.ibm.com/support/docview.wss?rs=2239&uid=swg24022952

Page 16: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

16

Cell/B.E. Compilers

Cross compilers products:

Hosted on RHEL5U1 (Red Hat) and F7 (Fedora)

Hosted on x86 and PPC (separate products)

Support SDK 3.0 interfaces

Targets QS20, QS21 and QS22 Blades

IBM XL C/C++ for Multicore Acceleration for Linux, V9.0

IBM XL Fortran for Multicore Acceleration for Linux, V11.1 (Hosted on PPC only)

Latest cross compiler products:

Hosted on RHEL5U2

Support SDK 3.1 interfaces

User directed single source compiler (using OpenMP)

IBM XL C/C++ for Multicore Acceleration for Linux, V10.1 (Hosted on x86 and PPC)

Page 17: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

17

XL UPC Compiler

Tech preview on alphaWorks Based on XL C V10.1 compiler

Compiler generated interface to the runtime system is identical for shared and distributed memory implementations

Optimizations take advantage of system architecture knowledge

On AIX Shared Memory (pthreads)

Distributed (LAPI)

On LinuxShared Memory (pthreads)

Distributed (LAPI)

On BG/LBG Message Layer (based on XLC V9.1 compiler)

Using approximately 1000 test scenarios:GWU UPC test suite

UPC version of NAS benchmarks

Berkeley UPC test suite

MTU UPC test suite

HPC Challenge suite

All information subject to change without notice

Page 18: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

18

Hybrid Execution EnvironmentNodeProcessThread

Partitioned Global

Address Space

Network

Hybrid

Partitioned Global

Address Space

Network

Distributed

Execution Environments

– Distributed: multiple nodes, one (or more)

process per node running one thread

– Hybrid: multiple nodes, one (or more)

processes per node running multiple

threads

Memory Locality

– shared memory physically located on the

node where the thread is running has

lower latency than memory located on

another node (affinity concept)

– compiler can exploit memory affinity

information when thread mapping and

cluster topology is known (static threads,

num. nodes known)

All information subject to change without notice

Page 19: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

19

FFT - Compiler Optimizations

FFT (16 threads per node)

0

5

10

15

20

25

1 3 5 7 9 11 13 15

Nodes

Gfl

op

/s

No UPC Optimizations

+ 350%

+ 300%

HYBRID

Shared Array Privatization

Forall strip-mining

Loop Versioning

+ 10%

typedef struct { double re, im; } complex_t;

typedef shared [BF] complex_t ComplexArray_t [N*N];

void transpose2 (ComplexArray_t A, ComplexArray_t B) {

// tile exchange (communication)

upc_barrier;

// local transpose

upc_forall(i = 0; i < N; i += bsize; &B[i*N])

for (j = 0; j < N; j += bsize)

for (ArrayIndex_t k = 0; k < bsize - 1; k++)

for (ArrayIndex_t l = k + 1; l < bsize; l++) {

complex_t c = B[(i+k)*N+(j+l)];

B[(i+k)*N+(j+l)] = B[(i+l)*N+(j+k)];

B[(i+l)*N+(j+k)] = c;

}

Privatized

1. version the upc_forall, this allows the analysis to reason about the locality of shared accesses done through

pointers-to-shared

2. accesses in the local transpose are then recognized as local and privatized.

Page 20: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

20

High Performance Linpack – MPI vs UPC

1 2 4 7 8 14 16 28

0

1

2

3

4

5

6

7

MPI vs UPC HPL

Power5 + HPS, 28 nodes, 16 processes/node

MPI

UPC

# nodes

perf

orm

ance/C

PU

, G

Flo

ps/s

UPC HPL (Blue Gene/L, 16k nodes)

Higher is better

Performance: almost equivalent, lags 10% behind MPI

Complexity: UPC code 1,430 lines, MPI code 30,744 lines

Page 21: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

21

OpenMP 3.0: Examples of Task

Recursive algorithm

int fib(int n) {int x, y;if (n<2)

return n;{

#pragma omp task shared(x)x=fib(n-1);

#pragma omp task shared(y)y=fib(n-2);

}#pragma omp taskwaitreturn x+y;

}

Pointer chasing

#pragma omp parallel

{#pragma omp single {

while(p) {#pragma omp task

process(p)p=p->next;

}}

}

Page 22: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

22

General –qstrict Suboptions

-qstrict=all -- be strict or -qstrict=none -- relaxed about all changes

-qstrict=precision -- be strict or -qstrict=noprecision -- relaxed about changing precision

-qstrict=exceptions -- be strict or -qstrict=noexceptions -- relaxed about changing exceptions

(whether more or less or moved)

[no]exceptions does not control everything that could produce different results, so different exceptions are possible even with –qstrict=noexceptions.

Each general suboption controls decisions itself,and also controls nested suboptions.

Page 23: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

23

General –qstrict Suboptions

-qstrict=ieeefp -- be strict or

-qstrict=noieeefp -- relaxed about violating IEEE 754

[no]ieeefp controls individual operations defined by IEEE 754,

not how operations interact or are ordered.

Detail suboptions allow controlling specific aspects of [no]ieeefp.

Most operations are affected by multiple detail suboptions,

and also by [no]exceptions.

-qstrict=order -- be strict or

-qstrict=noorder -- relaxed about operation order

[no]order controls the order between operations, as defined by

language semantics, not how each operation is implemented.

Detail suboptions allow controlling specific aspects of [no]order.

Page 24: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

24

Examples

-qstrict=all:nooperationprecision:noreductionorder

- Be strict about everything,

- except about operationprecision,

part of what’s needed to allow x / loop_constant => x * (1 / loop_constant),

which is needed to allow faster MOD

(note this allows other changes too),

- and about reductionorder,

to allow recognizing dot product and similar reductions

and generating faster parallelized code,

without allowing other reordering.

Page 25: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

25

Examples

do i = 1, n

a(i) = b(i) / x

end do

-qstrict=operationprecision\

:exceptions:zerosigns

LFL fp0=x(gr31,0)

. . .

CL.30:

LFL fp2=b[](gr4,8)

AI gr3=gr3,8

STFL a[](gr3,0)=fp1

DFL fp1=fp2,fp0,fcr =b(i)/x

AI gr4=gr4,8

BCT ctr=CL.30

divide by x

-qstrict=nooperationprecision\

:noexceptions:nozerosigns

LFS fp0=+CONSTANT_AREA(gr5,4) =1

. . .

LFL fp2=x(gr31,0)

RCPFL fp0=fp0,fp2,fcr =1/x

. . .

CL.30:

AI gr3=gr3,8

LFL fp2=b[](gr4,8)

AI gr4=gr4,8

STFL a[](gr3,0)=fp1

MFL fp1=fp2,fp0,fcr =b(i)*(1/x)

BCT ctr=CL.30

multiply by reciprocal of x

Page 26: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

26

The IBM Rational C/C++ Café

ibm.com/rational/cafe/community/ccpp

Page 27: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

27

Feature Request

Request for a feature to be supported by our compilers

C/C++ feature request page:

http://www.ibm.com/support/docview.wss?uid=swg27005811

Fortran feature request page:

http://www.ibm.com/support/docview.wss?uid=swg27005812

Or send e-mail to [email protected]

Page 28: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

28

Documentation

An information center containing the documentation for the XL Fortran V12.1 and XL C/C++ V10.1 versions of the AIX compilers is available at: http://publib.boulder.ibm.com/infocenter/comphelp/v101v121/index.jsp

An information center containing the documentation for the XL Fortran V11.1 and XL C/C++ V9.0 versions of the AIX compilers is available at: http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp

Optimization and Programming Guide for XLF V12.1 is now available online at: http://publib.boulder.ibm.com/infocenter/comphelp/v101v121/index.jsp

New whitepaper “Overview of the IBM XL C/C++ and XL Fortran Compiler Family” available at: http://www.ibm.com/support/docview.wss?uid=swg27005175

This information center contains all the html documentation shipped with the compilers. It is completely searchable.

Please send any comments or suggestions on this information center or about the existing C, C++ or Fortran documentation shipped with the products to [email protected].

Page 29: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

29

BACKUP SLIDES

Page 30: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

30

SPEC2006 FP Comparison Between AIX and Linux on Power6

-15.00%

-10.00%

-5.00%

0.00%

5.00%

10.00%

15.00%

20.00%

25.00%

30.00%

35.00%

40.00%

45.00%

50.00%b

waves

gam

es

mil

c

zeu

sm

p

gro

macs

cactu

sA

DM

lesli

e3d

nam

d

dealI

I

so

ple

x

po

vra

y

calc

uli

x

gem

s

ton

to

lbm

wrf

sp

hin

x3

Overa

ll

AIX

vs

Linux

Using peak options from spec.org (positive means AIX is faster than Linux)

Overall

< 1%

Page 31: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

31

SPEC2006 FP Comparison Between XL Compilers and GNU Compilers on Power6

0.00%

50.00%

100.00%

150.00%

200.00%

250.00%

300.00%

350.00%

400.00%

450.00%

500.00%

550.00%

600.00%

bwav

es

gam

es

milc

zeus

mp

lesl

ie3d

nam

d

sopl

ex

povr

ay

calc

ulix

gem

s

lbm

sphi

nx3

XL

VS

GNU

Using peak options with latest XL compilers and GNU compilers V4.2

GNU V4.2 failed to run

gromacs, cactus, dealll,

tonto and wrf

Page 32: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

32

SPECOMPM2001 Performance – IBM PPC Generations

0

10

20

30

40

50

p690 Turbo

32x1.7

p5 570

16*1.9

p6 hv8

8*4.2

SPECmark

Page 33: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

33

SPECOMPM2001 Performance – 64-way Competition

0

20

40

60

80

100

120

140

160

Unisys

ES7000/1

3.4 GHZ

XEON

HP

Alphaserver

1.15 GHZ

Alpha

Fujistu

Primepower

2GHZ

SPAC64 V

SGI Altix

1.6GHZ

Itanium2

IBM p5 595

2.3GHZ

POWER5

SPECmark

Page 34: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

34

History Of Compiler Improvement On Power4

Note: SPEC2000 base options improvements from www.spec.org

Compilers 2001

V5/V7.1.1

2002

V6/V8.1

2003

V6/V8.1.1

2004

V7/V9.1

2005

V8/V10.1

Compound

Over 4

Years

CAGR

Rate

SpecINT baseline 21% 0% 3% 7% 34% 7.6%

SpecFLOAT baseline 12% 5% 18% 5% 46% 9.9%

Page 35: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

35

History Of Compiler Improvement On Power5

Note: SPEC2000 base options improvements from www.spec.org

Compilers 2004

V7/V9.1

2005

V8/V10.1

2007

V9/V11.1

Compound

Over 3

Years

SpecINT baseline 4.3% 6.4% 11%

SpecFLOAT baseline 5.4% 1.8% 7.3%

Page 36: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

36

Installation of Multiple Compiler Versions

Installation of multiple compiler versions is supported

The vacppndi and xlfndi scripts shipped with VisualAge C++ 6.0 and

XL Fortran 8.1 and all subsequent releases allow the installation of

a given compiler release or update into a non-default directory

The configuration file can be used to direct compilation to a specific

version of the compiler

Example: xlf_v8r1 –c foo.f

May direct compilation to use components in a non-default

directory

Care must be taken when multiple runtimes are installed on the

same machine (details on next slide)

Page 37: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

37

Coexistence of Multiple Compiler Runtimes

Backward compatibility

C, C++ and Fortran runtimes support backward compatibility.

Executables generated by an earlier release of a compiler will work with a later version of the run-time environment.

Concurrent installation

Multiple versions of a compiler and runtime environment can be installed on the same machine

Full support in xlfndi and vacppndi scripts is now available

Limited support for coexistence

LIBPATH must be used to ensure that a compatible runtime version is used with a given executable

Only one runtime version can be used in a given process.

Renaming a compiler library is not allowed.

Take care in statically linking compiler libraries or in the use of dlopen or load .

Details in the compiler FAQ http://www.ibm.com/software/awdtools/fortran/xlfortran/support/

http://www.ibm.com/software/awdtools/xlcpp/support/

Page 38: IBM Power Systems Compiler Roadmap · Compilation Technology SCICOMP Barcelona | May 21, 2009 @ 2009 IBM Corporation Software Group IBM Power Systems Compiler Roadmap Roch Archambault

Compilation Technology

SCICOMP Barcelona | IBM Power Systems Compiler Roadmap © 2009 IBM Corporation

Software Group

38

FPU

A Unified Simdization FrameworkGlobal information gathering

Pointer Analysis Alignment Analysis

Simdization

Straightline-code Simdization Loop-level Simdization

General Transformation for SIMD

Dependence Elimination Data Layout Optimization

Simdization

SIMD Intrinsic Generator

Constant Propagation

VMX

CELL

architecture independent

architecture specific

Diagnostic

output

Idiom Recognition