1 / 37

Performance of a Multi-Paradigm Messaging Runtime on Multicore Systems

Performance of a Multi-Paradigm Messaging Runtime on Multicore Systems. Poster at Grid 2007 Omni Austin Downtown Hotel Austin Texas September 19 2007 Xiaohong Qiu Research Computing UITS , Indiana University Bloomington IN Geoffrey Fox, H. Yuan, Seung-Hee Bae

Télécharger la présentation

Performance of a Multi-Paradigm Messaging Runtime on Multicore Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Performance of a Multi-Paradigm Messaging Runtime on Multicore Systems Poster at Grid 2007 Omni Austin Downtown Hotel Austin Texas September 19 2007 Xiaohong Qiu Research Computing UITS, Indiana University Bloomington IN Geoffrey Fox, H. Yuan, Seung-Hee Bae Community Grids Laboratory, Indiana University Bloomington IN 47404 George Chrysanthakopoulos, Henrik Frystyk Nielsen Microsoft Research, Redmond WA Presented by Geoffrey Fox gcf@indiana.edu http://www.infomall.org

  2. Motivation Exploring possible applications for tomorrow’s multicore chips (especially clients) with 64 or more cores (about 5 years) One plausible set of applications is data-mining of Internet and local sensors Developing Library of efficient data-mining algorithms Clustering (GIS, Cheminformatics) and Hidden Markov Methods (Speech Recognition) Choose algorithms that can be parallelized well 2

  3. Approach Need 3 forms of parallelism MPI Style Dynamic threads as in pruned search Coarse Grain functional parallelism Do not use an integrated language approach as in Darpa HPCS Rather use “mash-ups” or “workflow” to link together modules in optimized parallel libraries Use Microsoft CCR/DSS where DSS is mash-up model built from CCR and CCR supports MPI or Dynamic threads 3

  4. Microsoft CCR Supports exchange of messages between threads using named ports FromHandler: Spawn threads without reading ports Receive: Each handler reads one item from a single port MultipleItemReceive: Each handler reads a prescribed number of items of a given type from a given port. Note items in a port can be general structures but all must have same type. MultiplePortReceive: Each handler reads a one item of a given type from multiple ports. JoinedReceive: Each handler reads one item from each of two ports. The items can be of different type. Choice: Execute a choice of two or more port-handler pairings Interleave: Consists of a set of arbiters (port -- handler pairs) of 3 types that are Concurrent, Exclusive or Teardown (called at end for clean up). Concurrent arbiters are run concurrently but exclusive handlers are http://msdn.microsoft.com/robotics/ 4

  5. Preliminary Results • Parallel Deterministic Annealing Clustering in C# with speed-up of 7 on Intel 2 quadcore systems • Analysis of performance of Java, C, C# in MPI and dynamic threading with XP, Vista, Windows Server, Fedora, Redhat on Intel/AMD systems • Study of cache effects coming with MPI thread-based parallelism • Study of execution time fluctuations in Windows (limiting speed-up to 7 not 8!)

  6. Machines Used

  7. CCR Overhead for a computation of 27.76 µs between messaging Rendezvous

  8. CCR Overhead for a computation of 29.5 µs between messaging Rendezvous

  9. CCR Overhead for a computation of 23.76 µs between messaging Rendezvous

  10. Time Microseconds Stages (millions) Overhead (latency) of AMD4 PC with 4 execution threads on MPI style Rendezvous Messaging for Shift and Exchange implemented either as two shifts or as custom CCR pattern

  11. Time Microseconds Stages (millions) Overhead (latency) of Intel8b PC with 8 execution threads on MPI style Rendezvous Messaging for Shift and Exchange implemented either as two shifts or as custom CCR pattern

  12. MPICH mpiJava MPJE MPI Exchange Latency on AMD4 Stages (millions) 0 2 4 6 8 10

  13. Cache Line Interference • One thread on each core • Thread i stores sum in A(i) is separation 1 – no variable access interference but cache line interference • Thread i stores sum in A(X*i) is separation X • Serious degradation if X < 64 bytes (8 words) and Vista or XP • A is a double (8 bytes)

  14. Deterministic Annealing • See K. Rose, "Deterministic Annealing for Clustering, Compression, Classification, Regression, and Related Optimization Problems," Proceedings of the IEEE, vol. 80, pp. 2210-2239, November 1998 • Parallelization is similar to ordinary K-Means as we are calculating global sums which are decomposed into local averages and then summed over components calculated in each processor • Many similar data mining algorithms (such as annealing for E-M expectation maximization) which have high parallel efficiency and avoid local minima

  15. Clustering by Deterministic Annealing • Use Physics Analogy for Clustering

  16. Deterministically find cluster centers yj using “mean field approximation” – could use slower Monte Carlo

  17. Annealing avoids local minima

  18. Parallel MulticoreDeterministic Annealing Clustering Parallel Overheadon 8 Threads Intel 8b Speedup = 8/(1+Overhead) 10 Clusters Overhead = Constant1 + Constant2/n Constant1 = 0.05 to 0.1 (Client Windows) 20 Clusters 10000/(Grain Size n = points per core)

  19. Parallel Multicore Deterministic Annealing Clustering Parallel Overhead for large (2M points) Indiana Census clustering on 8 Threads Intel 8b “Constant1” Increasing number of clusters decreases communication/memory bandwidth overheads

  20. Run Time Secs Number of Threads Intel 8b C# with 1 Cluster: Vista Scaled Run Time for Clustering Kernel • Run time for same workload per thread normalized by number of data points • Expect Run Time independent of Number of threads if not for parallel and memory bandwidth overheads • Work per data point proportional to number of clusters

  21. Intel 8b C# with 80 Clusters: Vista Scaled Run Time for Clustering Kernel • Work per data point proportional to number of clusters so memory bandwidth and parallel overheads decrease as # clusters increase Run Time Secs Number of Threads

  22. Intel 8c C with 80 Clusters: Redhat Run Time Fluctuations for Clustering Kernel • This is average of standard deviation of run time of the 8 threads between messaging synchronization points Standard Deviation/Run Time Number of Threads

  23. Intel 8c C with 80 Clusters: Redhat Scaled Run Time for Clustering Kernel • Work per data point proportional to number of clusters so memory bandwidth and parallel overheads decrease as # clusters increase Run Time Secs Number of Threads

  24. Standard Deviation/Run Time Number of Threads Intel 8b C# with 1 Cluster: Vista Run Time Fluctuations for Clustering Kernel • This is average of standard deviation of run time of the 8 threads between messaging synchronization points

  25. Standard Deviation/Run Time Number of Threads Intel 8b C# with 80 Clusters: Vista Run Time Fluctuations for Clustering Kernel • This is average of standard deviation of run time of the 8 threads between messaging synchronization points

  26. DSS Section • We view system as a collection of services – in this case • One to supply data • One to run parallel clustering • One to visualize results – in this by spawning a Google maps browser • Note we are clustering Indiana census data • DSS is convenient as built on CCR

  27. Timing of HP Opteron Multicore as a function of number of simultaneous two-way service messages processed (November 2006 DSS Release) CGL Measurements of Axis 2 shows about 500 microseconds – DSS is 10 times better DSS Service Measurements PC07Intro gcf@indiana.edu 30

  28. Clustering algorithm annealing by decreasing distance scale and gradually finds more clusters as resolution improved Here we see increasing to 30 as algorithm progresses

More Related