UMass Amherst

Programming


Home
Up

Project Overview

The multiprocessor nature of NP platforms poses a particularly difficult problem for application development. Current software development environments (SDKs) require an in-depth understanding of the hardware architecture of the NP system (something that traditionally has been abstracted by SDKs). Emerging NP systems with a large number of heterogeneous processing resources will make this problem increasingly difficult as the program developer will have to make choices on which hardware units to use for which tasks. Such decisions can have significant impact on the overall performance of the system as poor choices can cause contention on resources. To alleviate this problem, we profile and analyze NP applications to make decisions on how to assign processing tasks to a particular NP architecture.

Our approach is to analyze the run-time characteristics of NP applications and develop an abstract representation of the processing steps and their dependencies. This creates an "annotated acyclic directed graph" (ADAG), which is an architecture-independent representation of an application. The annotations indicate the processing requirements of each block and the strength of the dependency between blocks. The basic idea is that we build the application representation "bottom-up" considering each individual data and control dependency. The ADAG can then be used to determine an optimal
allocation of processing blocks to any arbitrary NP architecture. The focus of this work is on

  • A methodology for automatically identifying processing blocks from a run-time analysis of NP applications.
  • An algorithm to group "cohesive" processing blocks into processing clusters and a heuristic to efficiently approximate this NP-complete problem.
  • A randomized mapping algorithm to dynamically allocate processing clusters to processing resources on arbitrary network processor architectures.

The results from this work can be used to automate software optimization tasks. The ADAG representation of the application is also a crucial input to the performance modeling process.

An extension of this work is to consider run-time management of network processors as a dynamic mapping and re-mapping process.

Publications

For a complete list of NSL publications, see the publications page.


© 1998-2006 Tilman Wolf. Site Policies.