Seeking the Principles of Sustainable Software Engineering
  Like other engineering disciplines, software engineering should also have principles to guide the construction of sustainable computer applications. Tangible properties include a) unlimited scalability, b) maximal reproducibility, and c) optimizable energy efficiency. In practice, we expect a sustainable scientific application should be written once and execute many times on multiple different processing platforms of different scales with optimized performance and energy efficiency. For more than two decades, explicit parallel programming/processing paradigms only focused on performance. Practices showed that the rigid program-data binding prohibited dynamic runtime resource optimization and fault isolation, making it difficult to reproduce applications in scale. This paper reports our practice and experiences in search of the first principles of sustainable software engineering for compute and data intensive applications. Specifically, we report our practice and experiences using implicit parallel programming/processing paradigms. 
Justin Shi
cs.DC