In applications requiring very high throughput or which have real-time deadlines, the use ofparallel processing techniques has become widespread. Although there exists potential for vast performance gains, the communication overhead inherent in such systems can significantly lessen these gains. In thispaper; with tightly-coupled architectures as the platform, the static communication scheduling of messages in the network is addressed. The compile time determination of when nodes should send their messages to other nodes is what is termed static communication scheduling. In parallel systems the static scheduling of computational tasks has been studied for some time, howevel; an in depth analysis of our problem is very new. This paper builak a framework based on the newly developed Collision Graph model. Using this model, the determination of an optimal schedule is proven to be NP-complete. Several efJicient algorithms are designed to deal with a general case model of message trafic, and experiments show a signijicant improvement over baseline approaches.
Software development is a fast-changing area. New methods and new technologies emerge all the time. As a result, the education of software engineering is generally considered not to be keeping pace with the development of software engineering in industry. Given the limited resources in academia, it is unrealistic to purchase all the latest software tools for classroom usage. In this chapter, the authors describe how free/open-source data and free/open-source tools are used in an upper-level software engineering class at Indiana University South Bend. Depending on different learning objectives, different free/open-source tools and free/open-source data are incorporated into different team projects. The approach has been applied for two semesters, where instructor's experiences are assembled and analyzed. The study suggests (1) incorporating both free/open-source tools and free/open-source data in a software engineering course so that students can better understand both development methods and development processes and (2) updating software engineering course regularly in order to keep up with the advance of development tools and development methods in industry.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.