Atlas Graphics Group MeetingDec, [email protected] 1 The Colt Distribution - Open Source...

12
1 Atlas Graphics Group Meeting Dec, 1999 [email protected] The Colt Distribution - The Colt Distribution - Open Source Libraries Open Source Libraries for High Performance for High Performance Scientific and Technical Scientific and Technical Computing in Java Computing in Java Wolfgang Hoschek CERN IT/PDP

Transcript of Atlas Graphics Group MeetingDec, [email protected] 1 The Colt Distribution - Open Source...

Page 1: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

1Atlas Graphics Group Meeting Dec, 1999 [email protected]

The Colt Distribution - The Colt Distribution -

Open Source Libraries Open Source Libraries for High Performance for High Performance

Scientific and Technical Computing Scientific and Technical Computing in Javain Java

Wolfgang Hoschek

CERN IT/PDP

Page 2: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

2Atlas Graphics Group Meeting Dec, 1999 [email protected]

Technology TrackingTechnology Tracking Motivation & GoalsMotivation & Goals Colt distributionColt distribution FeaturesFeatures Status & Future plansStatus & Future plans ConclusionsConclusions

Overview

Page 3: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

3Atlas Graphics Group Meeting Dec, 1999 [email protected]

Scientific and technical computingScientific and technical computing

demanding problem sizes need for high performance at reasonably small memory footprint

Technology Tracking Don’t pray Java, C++ or whatever Gain enough experience to be able to take well founded strategic decisions

when the time comes…

Increased adoption in the fieldIncreased adoption in the field Performance gap steadily closing ease of use cross-platform nature (no compiler/architecture/linker issues) built-in support for multi-threading, network friendly APIs, ...

IBM Watson's Ninja project BLAS matrix computations up to 90% as fast as optimized Fortran

Technology Tracking

Page 4: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

4Atlas Graphics Group Meeting Dec, 1999 [email protected]

Users need libraries to get their job done Java lacks foundation toolkits broadly available and conveniently

accessible in C/C++ and Fortran Build an infrastructure for scalable scientific and technical computing in

Java a la CLHEP Don’t reinvent the wheel - share ressources in common efforts Open source User convenience

Document, package and distribute loosely coupled set of libraries under one single uniform umbrella

Avoid compiler/linker/architecture headaches Set a single env. variable to cross-platform shared library and run a program

no matter where you are

Motivation & Goals

Page 5: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

5Atlas Graphics Group Meeting Dec, 1999 [email protected]

Efficient High Level Data structures & algorithms for Efficient High Level Data structures & algorithms for

On-line & Off-line Data Analysis Histogramming NTuple like manipulations, multi-dim. arrays, matrices Random Numbers, Monte Carlo Simulation Concurrent & Parallel Programming

ApproachApproach Summon some of the best designs and implementations thought up

over time by the community Port or improve them; Introduce new approaches where need arises

Results so farResults so far In overlapping areas competitive or superior to toolkits such as STL,

Root, HTL, CLHEP, TNT, GSL, C-RAND / WIN-RAND, (all C/C++) as well as IBM Array, JDK 1.2 Collections framework, JGL (all Java),

in terms of performance (!), functionality and (re)usability

Colt

Page 6: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

6Atlas Graphics Group Meeting Dec, 1999 [email protected]

Several free librariesSeveral free libraries

For user convenience documented, packaged and bundled under one single uniform umbrella

Colt libraryColt library Fundamental general-purpose data structures optimized for numerical

data, e.g. Dense and sparse matrices (multi-dimensional arrays), Linear Algebra,

resizable arrays, associative containers, buffer management

Jet libraryJet library Mathematical and statistical tools for data analysis, Histogramming functionality, Random Number Generators and Distributions for simulations more

Features (1)

Page 7: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

7Atlas Graphics Group Meeting Dec, 1999 [email protected]

JAL libraryJAL library

a partial port of the C++ Standard Template Library developed by Silicon Graphics contains a wide range of efficiently coded general-purpose algorithms

on arrays

Random library Random library A complete port of CLHEP’s random number library

Concurrent libraryConcurrent library VNI libraryVNI library

special math functions, complex numbers

Contributions from Contributions from Sun, SGI, Visual Numerics, Univ. New York

Your package or library ?Your package or library ?

Features (2)

Page 8: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

8Atlas Graphics Group Meeting Dec, 1999 [email protected]

Documentation Documentation

Executive summary, installation details, FAQs, news, feedback

HTML API documentation HTML API documentation Extensive doc for each package, class, and method. Examples, Tutorials Build by javadoc

High quality, starting from single top entry point, easy navigation, browsing, exploration of features

Source codes for all libraries, Source codes for all libraries, and everything else needed to build the entire distribution from scratch

One single cross-platform shared libOne single cross-platform shared lib

Download Contents

Page 9: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

9Atlas Graphics Group Meeting Dec, 1999 [email protected]

Matrix ComputationsMatrix Computations

2D Assignment: 320 MB/sec, Element-wise Mult: 10 Mflops/sec Linear Equation Solving: ~ 15 Mflops/sec 2D matrix-matrix mult: 25+ Mflops/secMflops/sec, type=dense, SparcII@400 MHz, Solaris, SunJDK1.2.2, Classic VM

| density

| 0.0010 0.01 0.1 0.99

-------------------------------------

s 30 | 23.432 23.579 23.318 23.17

i 33 | 49.397 30.667 20.509 19.953

z 66 | 110.442 63.632 24.201 25.161

e 100 | 149.674 73.202 28.417 28.014

300 | 415.985 153.482 29.826 30.901

Random Numbers Random Numbers ~ 3*10^6 numbers/sec~ 3*10^6 numbers/sec

Histogram filling Histogram filling ~ 10^6 numbers/sec~ 10^6 numbers/sec

JDK1.2 on Solaris, Linux, NT, AIX, SGI, HP, … JDK1.2 on Solaris, Linux, NT, AIX, SGI, HP, …

Benchmarks

Page 10: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

10Atlas Graphics Group Meeting Dec, 1999 [email protected]

JAS (www-sldnt.slac.stanford.edu/jas)JAS (www-sldnt.slac.stanford.edu/jas)

Histogram package

Java Grande Forum (math.nist.gov/javanumerics)Java Grande Forum (math.nist.gov/javanumerics) Working group on numerical computing in Java Jama Linear Algebra package + many more

IBM Array@IBM Watson (www.research.ibm.com/ninja)IBM Array@IBM Watson (www.research.ibm.com/ninja) Similar design as Colt matrix classes

CLHEP (wwwinfo.cern.ch/asd/lhc++/clhep)CLHEP (wwwinfo.cern.ch/asd/lhc++/clhep) Random Number

TNT (math.nist.gov/tnt)TNT (math.nist.gov/tnt) Linear Algebra

Colt (nicewww.cern.ch/~hoschek/colt/index.htm)Colt (nicewww.cern.ch/~hoschek/colt/index.htm) Beta 1.3 under ASIS, Beta 1.4 under ASIS starting next week

Related Work

Page 11: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

11Atlas Graphics Group Meeting Dec, 1999 [email protected]

Currently V1.0 Beta 4Currently V1.0 Beta 4 Open SourceOpen Source V1.0 Final mid Feb. 99V1.0 Final mid Feb. 99 CVS access ?CVS access ? Under constructionUnder construction

Histogram package Transparent Parallel matrix computations for SMPs

Contributions welcomeContributions welcome

Status & Future Plans

Page 12: Atlas Graphics Group MeetingDec, 1999Wolfgang.Hoschek@cern.ch 1 The Colt Distribution - Open Source Libraries for High Performance Scientific and Technical.

12Atlas Graphics Group Meeting Dec, 1999 [email protected]

Technology TrackingTechnology Tracking

At LHC time-scale change is inevitable Java may soon be a major player in performance sensitive scientific and

technical computing Ease of use, Portability, Productivity, Fun

Colt distributionColt distribution Users need libraries to get their job done Java lacks foundation toolkits broadly available and conveniently

accessible in C/C++ and Fortran Build an infrastructure for scalable scientific and technical computing in

Java Don’t reinvent the wheel - share ressources in Open Source efforts Document, package and distribute loosely coupled set of libraries under

one single uniform umbrella Performance is good and improving - Only a question of time when Java

will be faster than C++

Conclusions