High Performance Computing In Java And The Cloud

1y ago
15 Views
2 Downloads
1.21 MB
55 Pages
Last View : 1d ago
Last Download : 3m ago
Upload by : Giovanna Wyche
Transcription

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsHigh Performance Computingin Java and the CloudGuillermo López TaboadaComputer Architecture GroupUniversity of A Coruña (Spain)taboada@udc.esJanuary 21, 2013Universitat Politècnica de Catalunya, BarcelonaGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsOutline1Java for High Performance ComputingJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC Benchmarks2High Performance Cloud ComputingAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava is an Alternative for HPC in the Multi-core EraLanguage popularity:(% skilled developers)#1 C (17.8%)#2 Java (17.4%)#3 Objective-C(10.3%)#4 C (9.14%)#17 Matlab (0.64%)#25 Fortran (0.46%)C and Java are themost popularlanguages. Fortran,popular language inHPC, is the 25#(0.46%)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava is an Alternative for HPC in the Multi-core EraInteresting features:Many productive parallel/distributedprogramming libs:Built-in networkingBuilt-in multi-threadingJava shared memory programming (highlevel facilities: Concurrency framework)Portable, platformindependentJava SocketsObject OrientedJava RMIMessage-Passing in Java (MPJ) librariesMain training languageGuillermo López TaboadaApache HadoopHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava Adoption in HPCHPC developers andusers usually want to useJava in their projects.Pros and Cons:Java code is no longerslow (Just-In-Timecompilation)!But still performancepenalties in Javacommunications:Guillermo López Taboadahigh programming productivity.but they are highly concernedabout performance.High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava Adoption in HPCHPC developers andusers usually want to useJava in their projects.JIT Performance:Java code is no longerslow (Just-In-Timecompilation)!But still performancepenalties in Javacommunications:Guillermo López TaboadaLike native performance.Java can even outperform nativelanguages (C, Fortran) thanks tothe dynamic compilation!!High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava Adoption in HPCHPC developers andusers usually want to useJava in their projects.High Java Communications Overhead:Poor high-speed networks support.Java code is no longerslow (Just-In-Timecompilation)!The data copies between the Javaheap and native code through JNI.But still performancepenalties in Javacommunications:The use of communication protocolsunsuitable for HPC.Guillermo López TaboadaCostly data serialization.High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksEmerging Interest in Java for HPCGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksCurrent State of Java for HPCGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for HPCCurrent options in Java for HPC:Java Shared Memory Programming (popular)Java RMI (poor performance)Java Sockets (low level programming)Message-Passing in Java (MPJ) (extended, easy and reasonably goodperformance)Apache Hadoop (for High Throughput Computing)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for HPCJava Shared Memory Programming:Java ThreadsConcurrency Framework (ThreadPools, Tasks .)Parallel Java (PJ)Java OpenMP (JOMP and JaMP)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksListing 1: Java Threadsclass BasicThread extends Thread {/ / T h i s method i s c a l l e d when t h e t h r e a d runspublic void run ( ) {f o r ( i n t i 0; i 1000; i )increaseCount ( ) ;}}class Test {i n t c o u n t e r 0L ;increaseCount ( ) {c o u n t e r ;}public s t a t i c void main ( S t r i n g argv [ ] ) {/ / Create and s t a r t t h e t h r e a dThread t 1 new BasicThread ( ) ;Thread t 2 new BasicThread ( ) ;t1 . s t a r t ( ) ;t2 . s t a r t ( ) ;System . o u t . p r i n t l n ( " Counter " c o u n t e r ) ;}}Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksListing 2: Java Concurrency Framework highlightsclass Test {public s t a t i c void main ( S t r i n g argv [ ] ) {/ / create the thread poolThreadPool t h r e a d P o o l new ThreadPool ( numThreads ) ;/ / run example t a s k s ( t a s k s implement Runnable )f o r ( i n t i 0 ; i numTasks ; i ) {t h r e a d P o o l . runTask ( createTask ( i ) ) ;}/ / c l o s e t h e p o o l and w a i t f o r a l l t a s k s t o f i n i s h .threadPool . j o i n ( ) ;}/ / Another i n t e r e s t i n g c l a s s e s from concurrency framework :/ / CyclicBarrier/ / ConcurrentHashMap/ / PriorityBlockingQueue/ / Executors . . .}Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJOMP is the Java OpenMP bindingListing 3: JOMP examplepublic s t a t i c void main ( S t r i n g argv [ ] ) {i n t myid ;/ / omp p a r a l l e l p r i v a t e ( myid ){myid OMP. getThreadNum ( ) ;System . o u t . p r i n t l n ( ‘ ‘ H e l l o from ’ ’ myid ) ;}/ / omp p a r a l l e l f o rf o r ( i 1; i n ; i ) {b [ i ] ( a [ i ] a [ i 1]) 0 . 5 ;}}Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksMPJ is the Java binding of MPIListing 4: MPJ exampleimport mpi . ;public class H e l l o {public s t a t i c void main ( S t r i n g argv [ ] ) {MPI . I n i t ( args ) ;i n t rank MPI .COMM WORLD. Rank ( ) ;i n t msg tag 1 3 ;i f ( rank 0 ) {i n t peer process 1 ;S t r i n g [ ] msg new S t r i n g [ 1 ] ;msg [ 0 ] new S t r i n g ( " H e l l o " ) ;MPI .COMM WORLD. Send ( msg , 0 , 1 , MPI . OBJECT, peer process , msg tag ) ;} else i f ( rank 1 ) {i n t peer process 0 ;S t r i n g [ ] msg new S t r i n g [ 1 ] ;MPI .COMM WORLD. Recv ( msg , 0 , 1 , MPI . OBJECT, peer process , msg tag ) ;System . o u t . p r i n t l n ( msg [ 0 ] ) ;}MPI . F i n a l i z e ( ) ;}}Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksOther APIsJGF MPJAPImpiJava a NIOSocketimpl.Java IOPure Java Impl.Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsMPJavaXJclusterXXXParallel JavaXXXP2P-MPIXXMPJ llermo López TaboadaXXXXXXXXXXXHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksFastMPJMPJ implementation developed at the Computer ArchitectureGroup of University of A Corunna.Features of FastMPJ include:High performance intra-node communicationEfficient RDMA transfers over InfiniBand and RoCEFully portable, as JavaScalability up to thousands of coresHighly productive development and maintenanceIdeal for multicore servers, cluster and cloud computingGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksFastMPJ Supported HardwareFastMPJ runs on InfiniBand through IB Verbs, can rely onTCP/IP and has shared memory support through Java threads:MPJ ApplicationsMPJ API (mpiJava 1.2)FastMPJ LibraryMPJ Collective PrimitivesMPJ Point to Point PrimitivesThe xxdev layermxdevpsmdevibvdevJava Native Interface (JNI)MX/Open MXMyrinet/EthernetInfiniPath PSMIBV APIInfiniBandGuillermo López Taboadaniodev/iodevsmdevJava SocketsJava ThreadsTCP/IPEthernetShared MemoryHigh Performance Computing in Java and the Cloud

Java Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for High Performance ComputingHigh Performance Cloud ComputingConclusionsFastMPJ in MareNostrum34033530Latency (µs)2.5252201.5151100.5Open MPIFastMPJ (ibvdev)01Bandwidth (Gbps)Point-to-point Performance on InfiniBand FDR103.5504 16 64 256 1K 4K 16K 64K 256K 1M 4M 16MMessage size (bytes)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava GPGPUTable: Available solutions for GPGPU computing in JavaCUDAOpenCLJava bindingsJCUDAjCudaJOCLJogAmp’s JOCLGuillermo López TaboadaUser-friendlyJava-GPURootbeerAparapiHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksListing 5: Java Code Examplef i n a l double i n [ 8 1 9 2 ] , o u t [ 8 1 9 2 ] ;f o r ( i n t i 0; i i n . l e n g t h ; i )out [ i ] i n [ i ] i n [ i ] ;Listing 6: Aparapi Code ExampleK e r n e l k e r n e l new K e r n e l ( ) {@Override public void run ( ) {int i getGlobalId ( ) ;out [ i ] i n [ i ] i n [ i ] ; }};k e r n e l . execute ( i n . l e n g t h ) ;Listing 7: Thread Code ExampleThread t h r e a d new Thread (new Runnable ( ) {@Override public void run ( ) { }});thread . s t a r t ( ) ; thread . j o i n ( ) ;Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksListing 8: jCuda Matrix Multiplicationp r i v a t e s t a t i c void dgemmJCublas ( i n t n , double alpha , double A [ ] , double B [ ] ,double beta , double C [ ] ){i n t nn n n ;/ / I n i t i a l i z e JCublasJCublas . c u b l a s I n i t ( ) ;/ / A l l o c a t e memory on t h e d e v i c eP o i n t e r d A new P o i n t e r ( ) ;P o i n t e r d B new P o i n t e r ( ) ;P o i n t e r d C new P o i n t e r ( ) ;JCublas . c u b l a s A l l o c ( nn , S i z e o f .DOUBLE, d A ) ;JCublas . c u b l a s A l l o c ( nn , S i z e o f .DOUBLE, d B ) ;JCublas . c u b l a s A l l o c ( nn , S i z e o f .DOUBLE, d C ) ;/ / Copy t h e memory from t h e h o s t t o t h e d e v i c eJCublas . c u b l a s S e t V e c t o r ( nn , S i z e o f .DOUBLE, P o i n t e r . t o (A ) , 1 , d A , 1 ) ;JCublas . c u b l a s S e t V e c t o r ( nn , S i z e o f .DOUBLE, P o i n t e r . t o (B ) , 1 , d B , 1 ) ;JCublas . c u b l a s S e t V e c t o r ( nn , S i z e o f .DOUBLE, P o i n t e r . t o (C) , 1 , d C , 1 ) ;/ / Execute dgemmJCublas . cublasDgemm ( ’ n ’ , ’ n ’ , n , n , n , alpha , d A , n , d B , n , beta , d C , n ) ;/ / Copy t h e r e s u l t from t h e d e v i c e t o t h e h o s tJCublas . cu bl a sG et Ve ct or ( nn , S i z e o f .DOUBLE, d C , 1 , P o i n t e r . t o (C) , 1 ) ;/ / Clean upJCublas . cublasFree ( d A ) ;JCublas . cublasFree ( d B ) ;JCublas . cublasFree ( d C ) ;JCublas . cublasShutdown ( ) ;}Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksListing 9: Aparapi Matrix Multiplicationclass AparapiMatMul extends K e r n e l {double matA [ ] , matB [ ] , matC [ ] , C [ ] ;i n t rows , cols1 , c o l s 2 ;@Overridepublic void run ( ) {i n t i g e t G l o b a l I d ( ) / rows ;i n t j g e t G l o b a l I d ( ) % rows ;f l o a t value 0;f o r ( i n t k 0 ; k c o l s 1 ; k ){v a l u e matA [ k i c o l s 1 ] matB [ k c o l s 2 j ] ;}matC [ i c o l s 1 j ] v a l u e ;}Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava GPGPUTable: Description of the GPU-based testbedCPUCPU performanceGPUGPU performanceMemoryOSCUDAJDK version1 Intel(R) Xeon hexacore X5650 @ 2.67GHz64.08 GFLOPS DP (10.68 GFLOPS DP per core)1 NVIDIA Tesla “Fermi” M2050515 GFLOPS DP12 GB DDR3 (1333 MHz)Debian GNU/Linux, kernel 3.2.0-3version 4.2 SDK ToolkitOpenJDK 1.6.0 24Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava GPGPUMatrix Multiplication performance (Single precision)Matrix Multiplication performance (Double 5002048x20484096x4096Problem 96Problem size8192x8192Figure: Matrix multiplication kernel performance (SHOC GEMM)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava GPGPUStencil2D performance (Single precision)Runtime (seconds)25612864Stencil2D performance (Double precision)1024JavaAparapijCudaCUDA512256Runtime parapijCudaCUDA4096x4096Problem size8192x81922048x20484096x4096Problem size8192x8192Figure: Stencil 2D kernel performance (SHOC Stencil2D)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava GPGPUStencil2D performance (Double D performance (Single 6x4096Problem jCudaAparapiJava4096x4096Problem size8192x8192Figure: Stencil 2D kernel performance (SHOC Stencil)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava GPGPUFFT performance (Single 048FFT performance (Double precision)JavaAparapijCudaCUDA4096x4096Problem 8x2048JavaAparapijCudaCUDA4096x4096Problem size8192x8192Figure: FFT kernel performance (SHOC FFT)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava GPGPUFFT performance (Single precision)FFT performance (Double 5002048x20484096x4096Problem size8192x819202048x20484096x4096Problem size8192x8192Figure: FFT kernel performance (SHOC FFT)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksCGEPFTISMGSPOperationConjugate GradientEmbarrassingly ParallelFourier TransformationInteger SortMulti-GridScalar PentadiagonalGuillermo López KernelNPB-MPJ Characteristics (10,000 SLOC (Source LOC))XHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava HPC optimization: NPB-MPJ success caseNPB-MPJ Optimization:JVM JIT compilation of heavy and frequent methods withruntime informationStructured programming is the best optionSmall frequent methods are better.mapping elements from multidimensional to one-dimensionalarrays (array flattening technique:arr3D[x][y][z] arr3D[pos3D(lenghtx,lengthy,x,y,z)])NPB-MPJ code refactored, obtaining significantimprovements (up to 2800% performance increase)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava for High Performance ComputingHigh Performance Cloud ComputingConclusionsExperimental Results on One Core (relative perf.)NPB Kernels Serial Performance on Amazon EC2 (C Class)220020001800GNU compilerIntel GMISISFTFTGCGCGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava HPC in an InfiniBand cluster (DAS4)2826242220181614MVAPICH2Open MPIFastMPJ (ibvdev)4.54Latency (µs)3.532.5121021.58642010.50141664 256 1K4K16K64K 256K1M4MBandwidth (Gbps)Point-to-point Performance on DAS-4 (IB-QDR)516MMessage size (bytes)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava HPC in an InfiniBand cluster (DAS4)NPB CG Kernel Performance on DAS-4 (IB-QDR)70000MVAPICH2Open MPIFastMPJ 128256512Number of CoresGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava HPC in an InfiniBand cluster (DAS4)NPB FT Kernel Performance on DAS-4 (IB-QDR)250000MVAPICH2Open MPIFastMPJ 12Number of CoresGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsJava Shared Memory ProgrammingJava Message-PassingJava GPGPUDevelopment of Efficient HPC BenchmarksJava HPC in an InfiniBand cluster (DAS4)NPB MG Kernel Performance on DAS-4 (IB-QDR)400000MVAPICH2Open MPIFastMPJ 00001163264128256512Number of CoresGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudIaaS: Infrastructure-as-a-ServiceIaaSThe access to infrastructure supports the execution ofcomputationally intensive tasks in the cloud. There are manyIaaS providers:Amazon Web Services (AWS)Google Compute Engine (beta)IBM cloudHP cloudRackspaceProfitBricksPenguin-On-Demand (POD)IMHO, AWS is the most suitable in terms of available resources,GuillermoLópez TaboadaHigh Performance Computingratio.in Java and the Cloudhigh performancefeaturesand performance/cost

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudHPC and Big Data in AWSAWSProvides a set of instances for HPCCC1: dual socket, quadcore Nehalem Xeon (93 GFlops)CG1: dual socket, quadcore Nehalem Xeon con 2 GPUs(1123 GFlops)CC2: dual socket, octcore Sandy Bridge Xeon (333 GFlops)Up to 63 GB RAM10 Gigabit Ethernet high performance networkGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudHPL Linpack in AWS (TOP500)Table: Configuration of our EC2 AWS clusterCPUEC2 Compute UnitsGPUMemoryStorageVirtualizationNumber of CGI nodesInterconnection networkTotal EC2 Compute UnitsTotal CPU CoresTotal GPUsTotal FLOPS2 Xeon quadcore X5570@2.93GHz (46.88 GFlops DP each)33.52 NVIDIA Tesla “Fermi” M2050 (515 GFlops DP each)22 GB DDR31690 GBXen HVM 64-bit platform (PV drivers for I/O)3210 Gigabit Ethernet1072256 (3 TFLOPS DP)64 (32.96 TFLOPS DP)35.96 TFLOPS DPGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudHPL Linpack in AWS (TOP500)HPL Linpack ranks the performance of supercomputers in TOP500 listIn AWS 14 TFlops are available for everybody! (67 USD /h on demand, 21USD /h spot)HPL Performance on Amazon EC2HPL Scalability on Amazon EC2160001400CPUCPU GPU (CUDA)140001200120001000Speedup10000GFLOPSCPUCPU GPU (CUDA)8000800600600040040002002000001248Number of Instances16Guillermo López Taboada321248Number of Instances1632High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudHPL Linpack in AWS (TOP500)ReferencesOur AWS Cluster: 14,23 TFlopsAWS (06/11): 41,82 TFlops (# 451 TOP500)AWS (11/11): 240,1 TFlops (# 42 TOP500, now # 102)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudRadiography enhanced through Montecarlo (MC-GPU)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudImage processing with Montecarlo (MC-GPU)Time: originally 187 minutes, in AWS with HPC6 seconds!Cost: processing 500 radiographies in AWS: aprox. 70 USD ,0,14 USD per unitMC-GPU Execution Time on Amazon EC2MC-GPU Scalability on Amazon EC216001800CPUCPU GPU (CUDA)14001400120012001000SpeedupRuntime (s)CPUCPU GPU (CUDA)16008006001000800600400400200200001248Number of Instances16Guillermo López Taboada321248Number of Instances16High Performance Computing in Java and the Cloud32

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudAWS HPC and Big Data RemarksHPC and Big Data in AWSHigh computational power (new Sandy Bridge processorsand GPUs)High performance communications over 10 GigabitEthernetEfficient access to file network systems (e.g., NFS,OrangeFS)Without waiting times in accessing resourcesEasy applications and infrastructure deployment,ready-to-run applications in AMIsGuillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSPoint-to-point Performance on 10 GbE (cc2.8xlarge)75709876566054553Bandwidth (Gbps)Latency (µs)10MPICH2OpenMPIFastMPJ2501451416 64 256 1K04K 16K 64K 256K 1M 4M 16M 64MMessage size (bytes)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSPoint-to-point Performance on SHMEM (cc2.8xlarge)0.80.60.50.40.30.20.101416 64 256 1KBandwidth (Gbps)0.7Latency (µs)7570656055504540353025201510504K 16K 64K 256K 1M 4M 16M 64MMPICH2OpenMPIFastMPJMessage size (bytes)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSCG C Class Performance PS100008000600040002000018163264Number of CoresGuillermo López Taboada128256512High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSCG C Class Scalability 30105018163264Number of CoresGuillermo López Taboada128256512High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSFT C Class Performance ber of CoresGuillermo López Taboada128256512High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSFT C Class Scalability 2642018163264Number of CoresGuillermo López Taboada128256512High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSMG C Class Performance PS600005000040000300002000010000018163264Number of CoresGuillermo López Taboada128256512High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudNPB Performance Evaluation in AWSMG C Class Scalability 10018163264Number of CoresGuillermo López Taboada128256512High Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsAWS IaaS for HPC and Big DataEvaluation of HPC in the CloudHPC in AWSEfficient Cloud Computing supportCG Kernel OpenMPI Performance on Amazon EC2CG Kernel OpenMPI Performance on Amazon EC21300016000DefaultDefault (Fillup)Default (Tuned)16 Instances (Fillup)16 Instances (Tuned)120001100010000Default16 Instances32 Instances64 of ProcessesGuillermoLópez Taboada12818163264128256Numberof ProcessesHigh Performance Computingin Javaand the Cloud512

Java for High Performance ComputingHigh Performance Cloud ComputingConclusionsSummaryQuestionsSummaryCurrent state of HPC in Java and the CloudJava/IaaS are interesting/feasible alternatives (tradeoffsome performance for appealing features)Suitable programming models:Java HPC: FastMPJCloud HPC: Hybrid MPI/MPJ GPGPU/ThreadsActive research on suitability of Java and IaaS for HPC.but still not mainstream optionsPerformance evaluations are highly importantAnalysis of current projects (promotion of joint efforts)Guillermo López TaboadaHigh Performance Computing in Java and the Cloud

Java for High Performance ComputingHigh Performance Cloud ComputingCo

Many productive parallel/distributed programming libs: Java shared memory programming (high level facilities: Concurrency framework) Java Sockets Java RMI Message-Passing in Java (MPJ) libraries Apache Hadoop Guillermo López Taboada High Performance Computing in Java and the Cloud . Guillermo López Taboada High Performance Computing in Java .

Related Documents:

java.io Input and output java.lang Language support java.math Arbitrary-precision numbers java.net Networking java.nio "New" (memory-mapped) I/O java.rmi Remote method invocations java.security Security support java.sql Database support java.text Internationalized formatting of text and numbers java.time Dates, time, duration, time zones, etc.

Java Version Java FAQs 2. Java Version 2.1 Used Java Version This is how you find your Java version: Start the Control Panel Java General About. 2.2 Checking Java Version Check Java version on https://www.java.com/de/download/installed.jsp. 2.3 Switching on Java Console Start Control Panel Java Advanced. The following window appears:

Needed: Java Standard So far there has been no standard integration of Trusted Computing in Java. JSR321 is a Java Specification Request in the Java Community Process for a Trusted Computing API for the Java SE platform. It is aimed to develop a Trusted Computing API for Java providing selected functionality the TCG Software Stack

–‘java’ command launches Java runtime with Java bytecode An interpreter executes a program by processing each Java bytecode A just-in-time compiler generates native instructions for a target machine from Java bytecode of a hotspot method 9 Easy and High Performance GPU Programming for Java Programmers Java program (.

3. _ is a software that interprets Java bytecode. a. Java virtual machine b. Java compiler c. Java debugger d. Java API 4. Which of the following is true? a. Java uses only interpreter b. Java uses only compiler. c. Java uses both interpreter and compiler. d. None of the above. 5. A Java file with

besteht aus der Java-API (Java Application Programming Interface) und der Java-VM (Java Virtual Machine). Abbildung 1: Java-Plattform Die Java-API ist eine große Sammlung von Java-Programmen, die in sog. Pakete (packages) aufgeteilt sind. Pakete sind vergleichbar mit Bibliotheken in anderen Programmiersprachen und umfassen u.a.

JAR Javadoc Java Language jar Security Others Toolkits: FX Java 2D Sound . Java Programming -Week 1. 6/25. Outline Java is. Let’s get started! The JDK The Java Sandbox . into your namespace. java.lang contains the most basic classes in the Java language. It is imported automatically, so

ADVANCED BOOKKEEPING KAPLAN PUBLISHING Introduction When a capital asset or non-current asset is disposed of there are a variety of accounting calculations and entries that need to be made. Firstly, the asset being disposed of must be removed from the accounting records as it is no longer controlled. In most cases the asset will be disposed of for either more or less than its carrying value .