ACM Computing Surveys (CSUR)
Static scheduling algorithms for allocating directed task graphs to multiprocessors
ACM Computing Surveys (CSUR)
Computation offloading to save energy on handheld devices: a partition scheme
CASES '01 Proceedings of the 2001 international conference on Compilers, architecture, and synthesis for embedded systems
Wireless sensor networks: a survey
Computer Networks: The International Journal of Computer and Telecommunications Networking
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Automatic Partitioning: Prototyping Ubiquitous-Computing Applications
IEEE Pervasive Computing
The design and implementation of Grid database services in OGSA-DAI: Research Articles
Concurrency and Computation: Practice & Experience - Grid Performance
An Adaptive Multi-Constraint Partitioning Algorithm for Offloading in Pervasive Systems
PERCOM '06 Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications
Scalable, Distributed, Real-Time Map Generation
IEEE Pervasive Computing
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Scalable inter-vehicular applications
OTM'07 Proceedings of the 2007 OTM Confederated international conference on On the move to meaningful internet systems - Volume Part II
Task partitioning for multi-core network processors
CC'05 Proceedings of the 14th international conference on Compiler Construction
Hi-index | 0.00 |
In many distributed computing paradigms, especially sensor networks and ubiquitous computing but also grid computing and web services, programmers commonly tie their application to a particular set of processors. This can lead to poor utilisation of resources causing increased compute time, wasted network bandwidth or poor battery life, particularly if later changes to the architecture or application render early decisions inappropriate. This paper describes a system which separates application code from the description of the resources available to execute it. Our framework and prototype compiler determines the best location to execute different parts of the distributed application. In addition, our language encourages the programmer to structure data, and the operations performed on it, as monoids and monoid homomorphisms. This approach enables the compiler to apply particular program transformations in a semantically-safe way, and therefore further increase the flexibility of the assignment of application tasks to available resources.