Although precise numbers are lacking, statistics suggest that the number of concurrent programmers has sky-rocketed over the past few years and will continue to do so. This stems mainly from Java's emergence-it's the first ubiquitous concurrent programming language. The rise in concurrent programmers also reflects an increased use of common C++ multithreaded class libraries and frameworks, Posix pthread library standardization, and other wide spectrum concurrent languages. Although only a small proportion of code found in today's production programs, applications, and systems directly exploits concurrency, every programmer should at least be aware of concurrency.
{"title":"Patterns and the democratization of concurrent programming","authors":"D. Lea","doi":"10.1109/4434.736398","DOIUrl":"https://doi.org/10.1109/4434.736398","url":null,"abstract":"Although precise numbers are lacking, statistics suggest that the number of concurrent programmers has sky-rocketed over the past few years and will continue to do so. This stems mainly from Java's emergence-it's the first ubiquitous concurrent programming language. The rise in concurrent programmers also reflects an increased use of common C++ multithreaded class libraries and frameworks, Posix pthread library standardization, and other wide spectrum concurrent languages. Although only a small proportion of code found in today's production programs, applications, and systems directly exploits concurrency, every programmer should at least be aware of concurrency.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122271665","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 Huge Microphone Array project began in February 1994 to design, construct, debug, and test a real-time 512-microphone array system and to develop algorithms for it. Analysis of known algorithms indicated that signal-processing performance of over 6 Gflops would be required, while the need for portability-fitting it into a small van-also set an upper limit to the power required. These trade-offs and many others have led to a unique design in both hardware and software. This two-part article presents the full design and its justifications. The authors also discuss performance for a few important algorithms relative to the use of processing capability, response latency, and difficulty of programming.
{"title":"The huge microphone array","authors":"H. Silverman, W. Patterson, J. Flanagan","doi":"10.1109/4434.736423","DOIUrl":"https://doi.org/10.1109/4434.736423","url":null,"abstract":"The Huge Microphone Array project began in February 1994 to design, construct, debug, and test a real-time 512-microphone array system and to develop algorithms for it. Analysis of known algorithms indicated that signal-processing performance of over 6 Gflops would be required, while the need for portability-fitting it into a small van-also set an upper limit to the power required. These trade-offs and many others have led to a unique design in both hardware and software. This two-part article presents the full design and its justifications. The authors also discuss performance for a few important algorithms relative to the use of processing capability, response latency, and difficulty of programming.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131150995","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}
Sequencing and assignment are two important issues we need to address a when scheduling real-time tasks on a multiprocessor architecture. Different problem representations can schedule such tasks, each emphasizing either a sequencing or assignment task. A sequence-oriented representation satisfies problem constraints by emphasizing the search for an appropriate tasks order, while an assignment-oriented representation emphasizes the search for an appropriate assignment of tasks. The authors introduce the RT-SAD algorithm, which uses an assignment-oriented representation to dynamically schedule tasks on the processors of a NUMA architecture. The proposed technique automatically controls and allocates the scheduling time to minimize the scheduling overhead and deadline violation of real-time tasks. The authors compare RT-SADS performance with another dynamic algorithm that uses a sequence-oriented representation. The results show interesting performance trade-offs among the candidate algorithms.
{"title":"Dynamic scheduling of real-time tasks, by assignment","authors":"B. Hamidzadeh, Yacine Atif","doi":"10.1109/4434.736402","DOIUrl":"https://doi.org/10.1109/4434.736402","url":null,"abstract":"Sequencing and assignment are two important issues we need to address a when scheduling real-time tasks on a multiprocessor architecture. Different problem representations can schedule such tasks, each emphasizing either a sequencing or assignment task. A sequence-oriented representation satisfies problem constraints by emphasizing the search for an appropriate tasks order, while an assignment-oriented representation emphasizes the search for an appropriate assignment of tasks. The authors introduce the RT-SAD algorithm, which uses an assignment-oriented representation to dynamically schedule tasks on the processors of a NUMA architecture. The proposed technique automatically controls and allocates the scheduling time to minimize the scheduling overhead and deadline violation of real-time tasks. The authors compare RT-SADS performance with another dynamic algorithm that uses a sequence-oriented representation. The results show interesting performance trade-offs among the candidate algorithms.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129913333","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}
It is time for high-quality products to emerge for HPC systems, but achieving this goal requires a new way of transferring results from the research environment to the application marketplace. As the product of three Italian research agencies and one industrial company: the National Research Council (CNR), National Agency for New Technologies, Energy, and Environment (ENEA), National Institute for Nuclear Physics (NFN), and Finmeccanica's Quadrics Supercomputers World Ltd. (QSW), the PQE2000 project adopts this viewpoint with respect to innovative software technologies and composite MPP architectures for petaflops computing. The author discusses the PQE2000 software technology, shared memory implementations and the PQE2000 architecture for MPP computations.
{"title":"PQE2000: HPC tools for industrial applications","authors":"M. Vanneschi","doi":"10.1109/4434.736429","DOIUrl":"https://doi.org/10.1109/4434.736429","url":null,"abstract":"It is time for high-quality products to emerge for HPC systems, but achieving this goal requires a new way of transferring results from the research environment to the application marketplace. As the product of three Italian research agencies and one industrial company: the National Research Council (CNR), National Agency for New Technologies, Energy, and Environment (ENEA), National Institute for Nuclear Physics (NFN), and Finmeccanica's Quadrics Supercomputers World Ltd. (QSW), the PQE2000 project adopts this viewpoint with respect to innovative software technologies and composite MPP architectures for petaflops computing. The author discusses the PQE2000 software technology, shared memory implementations and the PQE2000 architecture for MPP computations.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126520824","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}
To build a multicasting tree in a multicomputer network, the authors propose three strategies based on voting constructing a minimum spanning tree, and repeatedly constructing multiple minimum spanning trees. Typically, performance metrics to evaluate a multicast solution include time and traffic. Simultaneously optimizing both metrics is computationally intractable because the problem is NP-complete. The first scheme always guarantees the use of the shortest path from the source node to each destination. which makes it time-optimal. The other two schemes do not guarantee this but try to reduce the traffic as much as possible. To demonstrate these strategies' effectiveness, the authors apply them to hypercubes, star graphs, and star graphs with some faults. The report shows experimental results to evaluate the performance of these solutions.
{"title":"Building a multicasting tree in a high-speed network","authors":"Y. Tseng, T. Juang, Ming-Chih Du","doi":"10.1109/4434.736426","DOIUrl":"https://doi.org/10.1109/4434.736426","url":null,"abstract":"To build a multicasting tree in a multicomputer network, the authors propose three strategies based on voting constructing a minimum spanning tree, and repeatedly constructing multiple minimum spanning trees. Typically, performance metrics to evaluate a multicast solution include time and traffic. Simultaneously optimizing both metrics is computationally intractable because the problem is NP-complete. The first scheme always guarantees the use of the shortest path from the source node to each destination. which makes it time-optimal. The other two schemes do not guarantee this but try to reduce the traffic as much as possible. To demonstrate these strategies' effectiveness, the authors apply them to hypercubes, star graphs, and star graphs with some faults. The report shows experimental results to evaluate the performance of these solutions.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124221468","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 traditional view of mobile computing (such as it is) typically involves users moving through an environment, or set of environments, with their own personal computing devices. This model works as a rich extension of existing devices such as notebook computers and personal digital assistants. Without some degree of mobility, the problems associated with mobile computing are indistinguishable from those of traditional computing environments. Thus far, much of this fields research has focused on extending services developed for desktop computing environments to mobile devices and managing the challenges that result from unreliable or varying network connectivity. In a recent column, the author discussed the unique challenges presented by adopting a much more personal model of mobile computing, rather than simply considering the impact of desktop applications and services (see ibid., April-June 1998, p. 8-10). In this column, he extends that discussion to consider arrays of deeply embedded computing devices that are not fundamentally associated with an individual person. Collectively, this model and associated technologies will serve for developing a set of fundamentally new systems called smart spaces. Smart spaces incorporate embedded computing devices with sensor technology to provide automatic responses to environmental changes. Although some common examples consider the degenerate case of a single processing node (such as responsive desktops), a richer set of capabilities emerges when these nodes are composed to form larger systems.
{"title":"Mobile computing and smart spaces","authors":"W. Mangione-Smith","doi":"10.1109/4434.736391","DOIUrl":"https://doi.org/10.1109/4434.736391","url":null,"abstract":"The traditional view of mobile computing (such as it is) typically involves users moving through an environment, or set of environments, with their own personal computing devices. This model works as a rich extension of existing devices such as notebook computers and personal digital assistants. Without some degree of mobility, the problems associated with mobile computing are indistinguishable from those of traditional computing environments. Thus far, much of this fields research has focused on extending services developed for desktop computing environments to mobile devices and managing the challenges that result from unreliable or varying network connectivity. In a recent column, the author discussed the unique challenges presented by adopting a much more personal model of mobile computing, rather than simply considering the impact of desktop applications and services (see ibid., April-June 1998, p. 8-10). In this column, he extends that discussion to consider arrays of deeply embedded computing devices that are not fundamentally associated with an individual person. Collectively, this model and associated technologies will serve for developing a set of fundamentally new systems called smart spaces. Smart spaces incorporate embedded computing devices with sensor technology to provide automatic responses to environmental changes. Although some common examples consider the degenerate case of a single processing node (such as responsive desktops), a richer set of capabilities emerges when these nodes are composed to form larger systems.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126388810","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}
In large-scale multimedia applications, such as video on demand (VoD), interactive television (ITV), and Web browsers, the sheer number of users and the data size of the systems exacerbate the difficulty of supporting continuous-time presentation. For example, a single video stream requires between 1.5 and 6 Mbps of bandwidth. At 6 Mbps, the typical rate required for ITV, even the 100-stream servers deployed in a number of small-scale ITV trials must support a throughput in excess of 70 Mbytes per second. Yet, most conventional network data servers are limited to a throughput of well under 10 Mbytes per second. For example, a 1,000-stream server, which is the minimum considered for production ITV systems, requires parallel-processing systems with 15 or more nodes. All nodes must be able to access the same video data simultaneously. The need for a scalable multimedia-server solution is obvious.
{"title":"Scalable multimedia servers","authors":"A. Krikelis","doi":"10.1109/4434.736395","DOIUrl":"https://doi.org/10.1109/4434.736395","url":null,"abstract":"In large-scale multimedia applications, such as video on demand (VoD), interactive television (ITV), and Web browsers, the sheer number of users and the data size of the systems exacerbate the difficulty of supporting continuous-time presentation. For example, a single video stream requires between 1.5 and 6 Mbps of bandwidth. At 6 Mbps, the typical rate required for ITV, even the 100-stream servers deployed in a number of small-scale ITV trials must support a throughput in excess of 70 Mbytes per second. Yet, most conventional network data servers are limited to a throughput of well under 10 Mbytes per second. For example, a 1,000-stream server, which is the minimum considered for production ITV systems, requires parallel-processing systems with 15 or more nodes. All nodes must be able to access the same video data simultaneously. The need for a scalable multimedia-server solution is obvious.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"60 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131524617","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}
Vendors cannot provide all the operating-system services that users demand. So, there has been a persistent desire to make operating systems more flexible and customizable. Naturally, object-oriented technology has come to bear on this area. However the ease of use of many such solutions has been disappointing. Ease of use is a key feature of Frigate, an object-oriented file system. It differs from most file system designs in that it's for ordinary users, not sophisticated operating system gurus. Frigate's modular, extensible framework allows new extensions to be "plugged in" on the fly. It is fully implemented and supports a set of example file system extensions.
{"title":"Frigate: a user-extensible OO file system","authors":"Ted H. Kim, G. Popek","doi":"10.1109/4434.736411","DOIUrl":"https://doi.org/10.1109/4434.736411","url":null,"abstract":"Vendors cannot provide all the operating-system services that users demand. So, there has been a persistent desire to make operating systems more flexible and customizable. Naturally, object-oriented technology has come to bear on this area. However the ease of use of many such solutions has been disappointing. Ease of use is a key feature of Frigate, an object-oriented file system. It differs from most file system designs in that it's for ordinary users, not sophisticated operating system gurus. Frigate's modular, extensible framework allows new extensions to be \"plugged in\" on the fly. It is fully implemented and supports a set of example file system extensions.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"252 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117341169","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}
{"title":"Parallel Computation: Models And Methods","authors":"D. S. SzyId","doi":"10.1109/MCC.1998.736438","DOIUrl":"https://doi.org/10.1109/MCC.1998.736438","url":null,"abstract":"","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121476969","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 paper considers the main contributions of the notion of an agent and how it differs from object oriented concurrent programming.
本文考虑了代理概念的主要贡献,以及它与面向对象并发编程的区别。
{"title":"Agents and concurrent objects","authors":"Jean-Pierre Briot","doi":"10.1109/4434.736431","DOIUrl":"https://doi.org/10.1109/4434.736431","url":null,"abstract":"The paper considers the main contributions of the notion of an agent and how it differs from object oriented concurrent programming.","PeriodicalId":282630,"journal":{"name":"IEEE Concurr.","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134594751","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}