Data redistribution using MPI user-defined types

Chu Sing Yang, Sheng Wen Bai

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


In many parallel programs, run-time data redistribution is usually required to enhance data locality and reduce remote memory access on the distributed memory multicomputers. Recently researches in data redistribution algorithm have become very mature. The time required to generate data sets and processor sets is much lesser then before. That means packing/unpacking becomes a relatively heavy cost in the redistribution. In this paper we present methods to perform BLOCK-CYCLIC(s) to BLOCK-CYCLIC(t) redistribution using MPI user-defined types. In this approach, we can reduce the requirement of memory buffers and avoid unnecessary data-movement. The theoretical models are presented to determine the best method for redistribution. To evaluate the performance of the proposed methods, we have implemented our methods on an IBM SP2 parallel machine. The experimental results show that this approach can obviously improve the performance of redistribution in most cases.

Original languageEnglish
Title of host publicationProceedings - 1st International Symposium on Cyber Worlds, CW 2002
EditorsShietung Peng, Shuichi Yukita, Vladimir V. Savchenko
PublisherInstitute of Electrical and Electronics Engineers Inc.
Number of pages7
ISBN (Electronic)0769518621, 9780769518626
Publication statusPublished - 2002 Jan 1
Event1st International Symposium on Cyber Worlds, CW 2002 - Tokyo, Japan
Duration: 2002 Nov 62002 Nov 8

Publication series

NameProceedings - 1st International Symposium on Cyber Worlds, CW 2002


Other1st International Symposium on Cyber Worlds, CW 2002

All Science Journal Classification (ASJC) codes

  • Computational Theory and Mathematics
  • Computer Graphics and Computer-Aided Design
  • Artificial Intelligence

Fingerprint Dive into the research topics of 'Data redistribution using MPI user-defined types'. Together they form a unique fingerprint.

Cite this