Structured parallel programming models have always been claimed to help programmers to write efficient parallel code in a shorter time and with better results with respect to classical parallel models, such as those based on explicit message passing or shared memory.
We describe two experiences of our team in Pisa: muskel, a full java skeleton library and ASSIST, a structured coordination language. muskel has been used for experimenting new solutions in the implementation of structured parallel programming environments based on skeletons. The macro data flow implementation techniques and the concept of application manager have been first introduced in muskel. ASSIST is our state-of-the-art programming environment, targeting heterogeneous grids and networks, allowing C, C++ and FORTRAN code reusage and interoperating with standard CCM and Web Service environments.
We also present current results concerning automatic adaptivity of distributed program execution to varying target architecture features, such as processing element and link load/performance and processing element and link availability.