110 likes | 132 Views
Berkeley UPC Compiler. 100% open source, high-performance, portable UPC compiler Complete implementation of the latest UPC 1.1.1 language specification Open64-based source-to-source translator with inspectable C-code output
E N D
Berkeley UPC Compiler • 100% open source, high-performance, portable UPC compiler • Complete implementation of the latest UPC 1.1.1 language specification • Open64-based source-to-source translator with inspectable C-code output • Fully documented runtime system interface, carefully designed for system portability Christian Bell Jason Duell Costin Iancu Dan Bonachea Paul Hargrove Mike Welcome Wei Chen Parry Husbands Kathy Yelick http://upc.lbl.gov upc@lbl.gov
Berkeley UPC Compiler • Supports a wide variety of operating systems: • Linux, AIX, Tru64, IRIX, HPUX, Solaris, FreeBSD, Windows/Cygwin, Mac OSX • Supports a wide variety of CPUs: • x86, Itanium, PowerPC, SPARC, MIPS, PA-RISC • Supports a wide variety of backend C compilers: • gcc, Intel C, Visual Age C, Compaq C, Portland Group C, MIPSPro C, Sun Pro C • GASNet-based high-performance network support for: • Quadrics/elan, Myrinet/GM, IBM/LAPI, Infiniband/VAPI • On the way: Dolphin SCI, Cray X-1, SGI Altix 3000 • Portable MPI 1.1 backend for other hardware http://upc.lbl.gov upc@lbl.gov
Compiler UPC Code Compiler-generated C code UPC Runtime system Compiler-independent Platform-independent GASNet Communication System Network Hardware Language-independent Network-independent Berkeley UPC Runtime System Organization http://upc.lbl.gov upc@lbl.gov
GASNet Performance Summary http://upc.lbl.gov upc@lbl.gov
GASNet Performance Summary http://upc.lbl.gov upc@lbl.gov
Porting Chombo AMR to UPC • Porting Chombo* AMR to UPC • Numerics in FORTRAN • Data and control structures in UPC • Adaptive development in progress • Currently only single level • Example shows Mach 2 blast wave in a 2-D periodic chamber interacting with a dense fluid in the shape of the letters: U P C *Thanks to the ANAG group at LBL http://upc.lbl.gov upc@lbl.gov
After 200 Timesteps http://upc.lbl.gov upc@lbl.gov
After 500 Timesteps http://upc.lbl.gov upc@lbl.gov
After 800 Timesteps http://upc.lbl.gov upc@lbl.gov
Parallel Triangulation in UPC • Implementation of a parallel projection-based algorithm (Blelloch, Miller, Talmor) • Points and processors recursively divided • Uses parallel convex hull algorithm to decide on division of points into two sets • Each set is then processed by ½ of the processors • In demo, colors represent assignment of points to processors • Caching scheme implemented to conserve communication of points • Lowest level of recursion (when we have one processor) performed by Triangle (Shewchuk) http://upc.lbl.gov upc@lbl.gov
Triangulation code in Action http://upc.lbl.gov upc@lbl.gov