70 likes | 217 Views
Industrial project (234313) Generation and visualization of parallel execution dependency Graph FINAL PRESENTATION Students: Mohammed Gara, V iktor Masohin Supervisor: Shulamyt Ajami. Introduction.
E N D
Industrial project (234313) Generation and visualization of parallel execution dependency Graph FINAL PRESENTATION Students: Mohammed Gara, Viktor Masohin Supervisor: ShulamytAjami
Introduction Amdocs’ clients line of work has to collect information from different, separated and independent devices, and each device has a lot of information to provide to the interested parties. So there are some challenges: • Information provided in different formats. • Each device provides more than one kind of information. • There are so many devices reporting to the same application. So our project main idea is dealing with the above challenges.
Objectives • Analyzing dependency between given transformations (functions) in order to show which functions can be executed simultaneously. • Efficient execution of functions that can executed simultaneously.
Objectives • First part: Getting XML file that has a defined format which contains names of functions and there inputs, also it has the location where this function/input lives (such as class/DB/files). • Second part: Building the dependency graph. • Third part: Executing the functions in parallel way.
Methodology • Spring framework was used to parse and instantiate functions according to given xml. • Spring tool suite was used to visualize dependency graph. • Serialization was used to save graph to disk for future execution. • Java ThreadPoolExecutor was used to manage simultaneous execution of resulted graph. • Log4j was used to log events during graph execution.
Achievements • Best case scenario shows increasing in performance by number of available processors in comparison to serial execution
Conclusion • When building a large system, good design is very important. • Using existing (free) source-code can save a lot of time and work. • The course is a good way to expose students to new technologies, gain some hands on experience with “real” software projects, get familiar with a project’s life-cycle and learn how to conduct oneself in a team.