Optimisation and parallelisation of the partitioning around medoids function in R

M Piotrowski, T M Sloan, M Mewsissen, T Forster, L Mitchell, S Petrou, B Dobrezelecki, P Ghazal, A Trew, J Hill

Research output: Chapter in Book/Report/Conference proceedingConference contribution


R is a free statistical programming language commonly used for the analysis of high-throughput microarray and other data. It is currently unable to easily utilise multi processor architectures without substantial changes to existing R scripts. Further, working with large volumes of data often leads to slow processing and even memory allocation faults. A recent survey highlighted clustering algorithms as both computation and data intensive bottlenecks in post-genomic data analyses. These algorithms aim to sort numeric vectors (such as gene expression profiles) into groups by minimising vector distances within groups and maximising them between groups. This paper describes the optimisation and parallelisation of a popular clustering algorithm, partitioning around medoids (PAM), for the Simple Parallel R INTerface (SPRINT). SPRINT allows R users to exploit high performance computing systems without expert knowledge of such systems. This paper reports on a serial optimisation of the original code and a subsequent parallel implementation. The parallel implementation enables the processing of data sets that exceed the available physical memory and can yield, depending on the data set, over 100-fold increase in performance.
Original languageEnglish
Title of host publicationHigh Performance Computing and Simulation (HPCS), 2011 International Conference on
Number of pages7
Publication statusPublished - 1 Jul 2011


  • biology computing
  • genomics
  • microprocessor chips
  • multiprocessing systems
  • optimisation
  • parallel architectures
  • parallel processing
  • pattern clustering
  • statistical analysis
  • R scripts
  • clustering algorithms
  • data intensive bottlenecks
  • high throughput microarray
  • medoids function
  • memory allocation faults
  • multiprocessor architectures
  • partitioning around medoids
  • partitioning parallelisation
  • post genomic data analyses
  • simple parallel R interface
  • statistical programming language
  • Algorithm design and analysis
  • Benchmark testing
  • Clustering algorithms
  • High performance computing
  • Memory management
  • Optimization
  • Partitioning algorithms
  • Clustering
  • High Performance Computing
  • Message Passing Interface
  • Microarray
  • R

Cite this