INES – National Institute of Science and Technology for Software Engineering

RSS feed


December 2021
« Nov    

  • Software Engineering in the Transition to Multicore Platforms

    Publicado em April 17th, 2012Projects

    In the last few years, both the software development industry and academia have shown a strong belief that multicore machines are an irreversible tendency. To exploit the power of multicore machines, applications must be capable of running in parallel. However, the construction of concurrent and parallel applications is know to be a difficult and error-prone activity. Although operating systems, architectures, and compilers can assist in the construction of parallel applications, most of the responsibility rests in the hands of programmers.

    In this scenario, a number solutions have been proposed to improve the performance of applications running on multicore machines and to ease their construction and maintenance. Nonetheless, many of these solutions ignore the needs of developers and the current state of the practice of the construction of concurrent and parallel applications. In addition, researchers rarely evaluate the efficacy new mechanisms for the construction of concurrent systems from a software engineering perspective. At the same time, there are only a few approaches to support developers to introduce concurrency control mechanisms in existing systems, further aggravating problems. Finally, even when existing systems are successfully made concurrent, developers have little support to switch between different techniques for concurrency control and to structure their applications so as to be capable of handling errors at runtime.

    This research project aims to propose new techniques, methods, and tools to support developers in the transition to multicore platform, from a Software Engineering standpoint. More specifically, it has the following goals:

    – Improve the current body of knowledge about the state-of-the-practice of the use of existing constructs for concurrency control and how their usage has evolved over time.

    – To develop refactoring techniques to introduce concurrency control mechanisms in systems that do not use them. The methods and techniques that we intend to develop should also ease the task of switching between different techniques.

    – To design and implement new approaches to handle errors in concurrent systems, since concurrency is an abundant source of problems in the construction of real-world applications.

Leave a Reply

You must be logged in to post a comment.