{"title":"面向对象的并行离散事件模拟","authors":"Y. M. Teo, Y. Ng","doi":"10.1109/SIMSYM.2002.1000160","DOIUrl":null,"url":null,"abstract":"We describe the design, implementation and performance optimizations of SPaDES/Java, a process-oriented discrete-event simulation library in Java that supports sequential and parallel simulation. Parallel event synchronization is facilitated through a hybrid carrier-null, demand-driven flushing conservative null message mechanism. Inter-processor message communication is coordinated by a shared persistent memory implemented using Java Jini/JavaSpaces. We present the stepwise performance optimizations we have carried out, focusing mainly on reducing the cost of multithreading, null message synchronization overhead, and the cost of inter-processor communication. Two benchmark programs consisting of an open linear pipeline system and PHOLD representing a closed system are used. For PHOLD(16/spl times/6, 16), our optimization reduces the null message ratio from 0.94 to 0.29 on eight processors. Based on our time and space instrumentation, we observed that the memory cost of null message synchronization accounts for less than 10% of the total memory required by the PHOLD simulation.","PeriodicalId":198576,"journal":{"name":"Proceedings 35th Annual Simulation Symposium. SS 2002","volume":"5 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2002-04-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"11","resultStr":"{\"title\":\"SPaDES/Java: object-oriented parallel discrete-event simulation\",\"authors\":\"Y. M. Teo, Y. Ng\",\"doi\":\"10.1109/SIMSYM.2002.1000160\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We describe the design, implementation and performance optimizations of SPaDES/Java, a process-oriented discrete-event simulation library in Java that supports sequential and parallel simulation. Parallel event synchronization is facilitated through a hybrid carrier-null, demand-driven flushing conservative null message mechanism. Inter-processor message communication is coordinated by a shared persistent memory implemented using Java Jini/JavaSpaces. We present the stepwise performance optimizations we have carried out, focusing mainly on reducing the cost of multithreading, null message synchronization overhead, and the cost of inter-processor communication. Two benchmark programs consisting of an open linear pipeline system and PHOLD representing a closed system are used. For PHOLD(16/spl times/6, 16), our optimization reduces the null message ratio from 0.94 to 0.29 on eight processors. Based on our time and space instrumentation, we observed that the memory cost of null message synchronization accounts for less than 10% of the total memory required by the PHOLD simulation.\",\"PeriodicalId\":198576,\"journal\":{\"name\":\"Proceedings 35th Annual Simulation Symposium. SS 2002\",\"volume\":\"5 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2002-04-14\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"11\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings 35th Annual Simulation Symposium. SS 2002\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SIMSYM.2002.1000160\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings 35th Annual Simulation Symposium. SS 2002","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SIMSYM.2002.1000160","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
We describe the design, implementation and performance optimizations of SPaDES/Java, a process-oriented discrete-event simulation library in Java that supports sequential and parallel simulation. Parallel event synchronization is facilitated through a hybrid carrier-null, demand-driven flushing conservative null message mechanism. Inter-processor message communication is coordinated by a shared persistent memory implemented using Java Jini/JavaSpaces. We present the stepwise performance optimizations we have carried out, focusing mainly on reducing the cost of multithreading, null message synchronization overhead, and the cost of inter-processor communication. Two benchmark programs consisting of an open linear pipeline system and PHOLD representing a closed system are used. For PHOLD(16/spl times/6, 16), our optimization reduces the null message ratio from 0.94 to 0.29 on eight processors. Based on our time and space instrumentation, we observed that the memory cost of null message synchronization accounts for less than 10% of the total memory required by the PHOLD simulation.