A multiple reservation approach that allows atomic updates of multiple shared variables and simplifies concurrent and nonblocking codes for managing shared data structures such as queues and linked lists is presented. The method can be implemented as an extension to any cache protocol that grants write access to at most one processor at a time. Performance improvement, automatic restart, and livelock avoidance are discussed. Some sample programs are examined.<>
{"title":"Multiple reservations and the Oklahoma update","authors":"J. Stone, H. Stone, P. Heidelberger, John Turek","doi":"10.1109/88.260295","DOIUrl":"https://doi.org/10.1109/88.260295","url":null,"abstract":"A multiple reservation approach that allows atomic updates of multiple shared variables and simplifies concurrent and nonblocking codes for managing shared data structures such as queues and linked lists is presented. The method can be implemented as an extension to any cache protocol that grants write access to at most one processor at a time. Performance improvement, automatic restart, and livelock avoidance are discussed. Some sample programs are examined.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133340498","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Adaptive message logging, which traces dependences between messages and checkpoints and selectively logs messages, letting users accurately and efficiently replay specific portions of parallel programs, is presented. Traces are reduced by logging only messages that cannot be quickly recomputed during replay. By restarting the execution at the right set of checkpoints, many of the messages needed for a specific replay can be recomputed during the replay itself.<>
{"title":"Adaptive message logging for incremental program replay","authors":"Robert H. B. Netzer, Jian Xu","doi":"10.1109/88.260289","DOIUrl":"https://doi.org/10.1109/88.260289","url":null,"abstract":"Adaptive message logging, which traces dependences between messages and checkpoints and selectively logs messages, letting users accurately and efficiently replay specific portions of parallel programs, is presented. Traces are reduced by logging only messages that cannot be quickly recomputed during replay. By restarting the execution at the right set of checkpoints, many of the messages needed for a specific replay can be recomputed during the replay itself.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"130 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129976653","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A description is given of a visualization environment that integrates a supercomputer, large storage facilities, and a visualisation server to let scientists analyze large, complex problems and view pseudo-high-performance, interactive graphics on desktop displays. The paper covers the shared, centralized server, the current prototype environment, and the software environment.<>
{"title":"A visualization model for supercomputing environments","authors":"C. Pavlakos, L. Schoof, J. Mareda","doi":"10.1109/88.260284","DOIUrl":"https://doi.org/10.1109/88.260284","url":null,"abstract":"A description is given of a visualization environment that integrates a supercomputer, large storage facilities, and a visualisation server to let scientists analyze large, complex problems and view pseudo-high-performance, interactive graphics on desktop displays. The paper covers the shared, centralized server, the current prototype environment, and the software environment.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115127016","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Although RPC is the current method of choice for distributed interprocess communication, its complexity might increase demand for higher-level approaches. The Virtual Network, an idealized, intelligent software network that hides the underlying physical network's incompatibilities and complexities from the distributed programs that run on it, is presented as a solution. The components of the Virtual Network are described, and meta communication, error handling, system administration, performance, and security issues are discussed. The Virtual Network is compared with DCE RPC, the de facto standard. The use of the Virtual Network framework to quickly design and implement a useful, sophisticated distributed application, the distributed Ada compilation tool, is described.<>
{"title":"Beyond RPC: the Virtual Network","authors":"Michael J. Dalpee, T. J. Cannaliato","doi":"10.1109/88.260292","DOIUrl":"https://doi.org/10.1109/88.260292","url":null,"abstract":"Although RPC is the current method of choice for distributed interprocess communication, its complexity might increase demand for higher-level approaches. The Virtual Network, an idealized, intelligent software network that hides the underlying physical network's incompatibilities and complexities from the distributed programs that run on it, is presented as a solution. The components of the Virtual Network are described, and meta communication, error handling, system administration, performance, and security issues are discussed. The Virtual Network is compared with DCE RPC, the de facto standard. The use of the Virtual Network framework to quickly design and implement a useful, sophisticated distributed application, the distributed Ada compilation tool, is described.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130174245","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A distributed protocol that records bounded snapshots of FIFO and non-FIFO communication channels, thus avoiding the unbounded storage requirements of other global-snapshot protocols, is described. The assumptions and definitions underlying the protocol are discussed, and its correctness is demonstrated. A modified protocol that can minimize a recorded global state by solving the maximum-flow problem is also presented.<>
{"title":"Bounded and minimum global snapshots","authors":"B. Groselj","doi":"10.1109/88.260297","DOIUrl":"https://doi.org/10.1109/88.260297","url":null,"abstract":"A distributed protocol that records bounded snapshots of FIFO and non-FIFO communication channels, thus avoiding the unbounded storage requirements of other global-snapshot protocols, is described. The assumptions and definitions underlying the protocol are discussed, and its correctness is demonstrated. A modified protocol that can minimize a recorded global state by solving the maximum-flow problem is also presented.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133263019","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Presents a flexible load-sharing algorithm which achieves scalability by partitioning a system into domains. Each node dynamically and adaptively selects other nodes to be included in its domain. FLS applies load sharing within each domain, independently of how it is applied within other domains.<>
{"title":"Scalable, adaptive load sharing for distributed systems","authors":"O. Kremien, J. Kramer, J. Magee","doi":"10.1109/88.242447","DOIUrl":"https://doi.org/10.1109/88.242447","url":null,"abstract":"Presents a flexible load-sharing algorithm which achieves scalability by partitioning a system into domains. Each node dynamically and adaptively selects other nodes to be included in its domain. FLS applies load sharing within each domain, independently of how it is applied within other domains.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130534851","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Distributed simulations of timed transition Petri nets on real multiprocessor systems can be faster than sequential simulation, even for small simulation models. The authors show how.<>
{"title":"Distributed simulation of Petri nets","authors":"G. Chiola, A. Ferscha","doi":"10.1109/88.242441","DOIUrl":"https://doi.org/10.1109/88.242441","url":null,"abstract":"Distributed simulations of timed transition Petri nets on real multiprocessor systems can be faster than sequential simulation, even for small simulation models. The authors show how.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"134 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123207244","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Repetitive fault tolerance takes advantage of redundant processors to offer peak performance during normal execution, and graceful performance degradation when processors fail. As long as one processor is working, the computation can continue. The authors use the underlying principle of inherent fault tolerance, turning redundancy into computation power, to design a model of repetitive fault tolerance that is suitable for dataflow computations. When no processors fail, they all work in parallel to achieve performance almost equal to that of the parallel program without fault tolerance. If processors do fail, the program can still derive the correct result as long as at least one processor is working; failures only slow the computation speed. Repetitive fault tolerance also provides a systematic way to derive fault-tolerant programs.<>
{"title":"Exploiting redundancy to speed up parallel systems","authors":"I. Yen, E. Leiss, F. Bastani","doi":"10.1109/88.242445","DOIUrl":"https://doi.org/10.1109/88.242445","url":null,"abstract":"Repetitive fault tolerance takes advantage of redundant processors to offer peak performance during normal execution, and graceful performance degradation when processors fail. As long as one processor is working, the computation can continue. The authors use the underlying principle of inherent fault tolerance, turning redundancy into computation power, to design a model of repetitive fault tolerance that is suitable for dataflow computations. When no processors fail, they all work in parallel to achieve performance almost equal to that of the parallel program without fault tolerance. If processors do fail, the program can still derive the correct result as long as at least one processor is working; failures only slow the computation speed. Repetitive fault tolerance also provides a systematic way to derive fault-tolerant programs.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126130244","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The per-process approach lets each process create its own private view of naming, instead of relying solely on the system's naming tree as in the per-system approach. The result is a flexible naming environment for distributed systems, especially for remote execution.<>
{"title":"The per-process view of naming and remote execution","authors":"S. Radia, J. Pachl","doi":"10.1109/88.242448","DOIUrl":"https://doi.org/10.1109/88.242448","url":null,"abstract":"The per-process approach lets each process create its own private view of naming, instead of relying solely on the system's naming tree as in the per-system approach. The result is a flexible naming environment for distributed systems, especially for remote execution.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126945709","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Enterprise is a programming environment for designing, coding, debugging, testing, monitoring, profiling, and executing programs for distributed hardware. Developers using Enterprise do not deal with low-level programming details such as marshalling data, sending/receiving messages, and synchronization. Instead, they write their programs in C, augmented by new semantics that allow procedure calls to be executed in parallel. Enterprise automatically inserts the necessary code for communication and synchronization. However, Enterprise does not choose the type of parallelism to apply. The developer is often the best judge of how parallelism can be exploited in a particular application, so Enterprise lets the programmer draw a diagram of the parallelism using a familiar analogy that is inherently parallel: a business organization, or enterprise, which divides large tasks into smaller tasks and allocates assets to perform those tasks. These assets correspond to techniques used in most large-grained parallel programs; pipelines, master/slave processes, divide-and-conquer, and so on,and the number and kinds of assets used determine the amount of parallelism.<>
{"title":"The Enterprise model for developing distributed applications","authors":"J. Schaeffer, D. Szafron, G. Lobe, Ian Parsons","doi":"10.1109/88.242459","DOIUrl":"https://doi.org/10.1109/88.242459","url":null,"abstract":"Enterprise is a programming environment for designing, coding, debugging, testing, monitoring, profiling, and executing programs for distributed hardware. Developers using Enterprise do not deal with low-level programming details such as marshalling data, sending/receiving messages, and synchronization. Instead, they write their programs in C, augmented by new semantics that allow procedure calls to be executed in parallel. Enterprise automatically inserts the necessary code for communication and synchronization. However, Enterprise does not choose the type of parallelism to apply. The developer is often the best judge of how parallelism can be exploited in a particular application, so Enterprise lets the programmer draw a diagram of the parallelism using a familiar analogy that is inherently parallel: a business organization, or enterprise, which divides large tasks into smaller tasks and allocates assets to perform those tasks. These assets correspond to techniques used in most large-grained parallel programs; pipelines, master/slave processes, divide-and-conquer, and so on,and the number and kinds of assets used determine the amount of parallelism.<<ETX>>","PeriodicalId":325213,"journal":{"name":"IEEE Parallel & Distributed Technology: Systems & Applications","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1993-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121261922","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}