Compiler optimizations for Java aglets in distributed data intensive applications

  • Authors:
  • Abhishek Singh;Santosh Pande

  • Affiliations:
  • Georgia Institute of Technology, Atlanta Georgia;Georgia Institute of Technology, Atlanta Georgia

  • Venue:
  • Proceedings of the 2002 ACM symposium on Applied computing
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Code migration in light of distributed data intensive computing poses interesting compilation issues. In this work, we first define a small extension to the aglet model to allow data distribution. In our aglet program, data is distributed over the network using annotations (this is similar to High Performance Fortran (HPF) where the programmer specifies data distributions through annotations). We analyze the program using the annotations and use the 'owner computes' rule to determine where a given computation should take place. The compiler then schedules the aglet through the network and also determines the data it should carry during its migration. Determining efficient schedule of the aglet and which data to carry during migration poses interesting issues.We propose two strategies to optimize the aglet schedule. The first strategy called Take All Live Data: (TALD) attempts to carry all the live definitions of variables from a given node when visited. The second strategy Take Only Needed Data (TOND) attempts to carry only those definitions whose uses are in the destination node. The goal of the first strategy is to minimize the number of migrations which are expensive due to high serialization overheads The second strategy aims to minimize bandwidth consumption during a migration. This could significantly reduce the communication overhead due to minimal amount of data carried during each migration. We have implemented both the strategies in the Jikes compiler from IBM. We have evaluated it on a distributed database application and show benefits of both the strategies on large and small databases. The results show that strategies generated by our compiler analysis reduce the overheads and improve execution time.