首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
The problem with threads   总被引:5,自引:0,他引:5  
Lee  E.A. 《Computer》2006,39(5):33-42
For concurrent programming to become mainstream, we must discard threads as a programming model. Nondeterminism should be judiciously and carefully introduced where needed, and it should be explicit in programs. In general-purpose software engineering practice, we have reached a point where one approach to concurrent programming dominates all others namely, threads, sequential processes that share memory. They represent a key concurrency model supported by modern computers, programming languages, and operating systems. In scientific computing, where performance requirements have long demanded concurrent programming, data-parallel language extensions and message-passing libraries such as PVM, MPI, and OpenMP dominate over threads for concurrent programming. Computer architectures intended for scientific computing often differ significantly from so-called general-purpose architectures.  相似文献   

2.
PVM并行虚拟机是一种广为使用的分布并行消息库,使用进程作为并行任务的基本单位。但是PVM不支持安全的线程机制。在研究借鉴先前研究经验的基础上,研究支持PVM线程安全的机制,在PVM库和POSIX线程库之上设计了支持PVM线程应用的库PTL,使基于进程的消息传递模型可以基于线程来实现。阐述了其设计原理,给出了程序设计示例,最后给出总结。  相似文献   

3.
Scsh, the Scheme shell, enables concurrent system programming with portable user-level threads. In scsh, threads behave like processes in many ways: each thread receives its own set of process resources; like Unix processes, new threads can inherit resources from the creating thread. The combination of scsh's interface to the POSIX API with user-level threads creates a number of design and implementation challenges: Scsh's abstractions for managing process resources raise interesting modularity issues, particularly in connection with first-class continuations. Scsh also provides an interface to the fork system call; its implementation must avoid common pitfalls that arise with a user-level thread system. This paper describes the design and implementation of the relevant abstractions and discusses the implications for programming-language and system design.  相似文献   

4.
王科特  王力生 《计算机应用》2011,31(10):2593-2596
为解决多核环境下,信号采集系统的数据处理实时性问题,提高波形数据采集和数据显示速度,提出使用裸线程构建数据采集模块和数据处理模块的最佳线程分配数量的最优线程分配算法,其目的在于合理分配线程给各个模块,达到系统的最佳性能。该算法基于生产者-消费者模式、操作系统多线程时间片轮转调度策略,根据各模块的工作量酌情调节线程比例,使应用程序达到最高加速比。实验表明,在双核环境下,该最佳线程数算法计算出最佳线程组合,使采集波形数据和数据显示合理并行化,相对于其他的线程组合分配方式完成程序花费的时间更少,提高了系统加速比、运算性能以及实时性。通过最优线程分配算法,提供了最优的线程数量分配方案,提高并行程序执行效率,减少了不必要的线程开销,提高了波形信号采集实时性。  相似文献   

5.
当前最流行的网络并行计算消息传递模型是PVM和MPI,通常使用者认为PVM和MPI仅是代表了解决相同问题的不同解答方案。而该文结合曙光-2000(分布式大规模并行计算机系统)所用的消息传递型编程模型,从PVM和MPI的设计目标,起源,规范、动态进程,非阻塞操作等几个方面来说明这两种程序设计方法有许多明显区别点,通常用来解决不同的问题。  相似文献   

6.
Heterogeneous network-based distributed and parallel computing is gaining increasing acceptance as an alternative or complementary paradigm to multiprocessor-based parallel processing as well as to conventional supercomputing. While algorithmic and programming aspects of heterogeneous concurrent computing are similar to their parallel processing counterparts, system issues, partitioning and scheduling, and performance aspects are significantly different. In this paper, we discuss the evolution of heterogeneous concurrent computing, in the context of the parallel virtual machine (PVM) system, a widely adopted software system for network computing. In particular, we highlight the system level infrastructures that are required, aspects of parallel algorithm development that most affect performance, system capabilities and limitations, and tools and methodologies for effective computing in heterogeneous networked environments. We also present recent developments and experiences in the PVM project, and comment on ongoing and future work.  相似文献   

7.
LPVM (lightweight-process PVM) is an experimental PVM version that supports the use of lightweight processes or threads as the basic unit of parallelism. It was designed to study potential performance improvements and implementation issues required by multithread message-passing systems. The current version of LPVM was implemented on SMPs (shared memory processors) using POSIX threads and is designed to be thread-safe. Initial test results on a SUN SMP are compared with the performance of standard PVM. Task spawning is an order of magnitude faster in LPVM, but message-passing between threads using shared memory was found to be slower than standard PVM due to overheads in getting and releasing shared memory locks. © 1998 John Wiley & Sons, Ltd.  相似文献   

8.
Much research has focused on reducing and/or tolerating remote memory access latencies on distributed-memory parallel computers. Caching remote data is intended to reduce average access latency by handling as many remote memory accesses as possible using local copies of the data in the cache. Data-flow and multithreaded approaches help programs tolerate the latency of remote memory accesses by allowing processors to do other work while remote operations take place. The thread migration technique described here is a multithreaded architecture where threads migrate to remote processors that contain data they need. By exploiting access locality, the threads often use several data items from that processor before migrating to other processors for more data. Because the threads migrate in search of data, the approach is called Nomadic Threads. A prototype runtime system has been implemented on the CM5 and is portable to other distributed memory parallel computers.  相似文献   

9.
We present a novel and portable threads-based system for concurrent applications on shared- and distributed-memory environments. The Ariadne system provides stateful user-space threads that can be very effective in medium to coarse grained applications. The interface is the same for uniprocessors and multiprocessors. Sequential programs are readily converted into parallel programs for shared or distributed memory, with low development effort. Ariadne supports the development of customized schedulers, and offers a thread migration capability in distributed environments. Scheduling of computations at the threads level enables both task- and data-driven executions. Thread migration is a useful feature which turns remote memory accesses into local accesses, enables load-balancing and simplifies program development. Ariadne employs a unique runtime stack rewriting mechanism to migrate threads between homogeneous processors. Ariadne currently runs on the SPARC (SunOS 4.x, SunOS 5.x), Sequent Symmetry, Intel Paragon, Silicon Graphics IRIX and IBM RS/6000 environments. We present some examples of Ariadne programs, along with performance measurements. © 1998 John Wiley & Sons, Ltd.  相似文献   

10.
This paper discusses a multithreaded software architecture for message-passing interface (MPI) software specification. The architecture is thread-safe, allows for concurrent communication over several communications media (multifabric communication), efficiently utilizes available hardware concurrency over a wide range of target platforms, and allows for concurrent communication and computation within the limits imposed by the hardware. The architecture is developed in the framework of the MPICH software architecture, a well-known MPI implementation used worldwide. The proposed architecture adopts wide portability of the MPICH design and remedies some of its deficiencies such as inefficient multifabric communication and non-thread-safety. The paper also considers the issues concerning development of high-performance portable message-passing systems for general-purpose architectures. The contributions of the paper are improving architecture and addressing thread safety of modern reliable messaging software, as well as identifying and taking advantage of inherent concurrency in the message-passing software itself.  相似文献   

11.
面向高性能计算环境的作业优化调度模型的设计与实现   总被引:1,自引:0,他引:1  
高性能计算环境聚合了多个分布在不同地域、不同组织机构的高性能计算资源,面向用户提供统一的访问入口和使用方式,由系统中间件根据用户作业请求匹配合适的高性能计算资源。随着环境应用编程接口的开放以及作业请求数量的大幅增加,面对高并发作业提交请求时,目前采用的即时调度模型会由于网络等原因导致一定数量的请求处理失败,同时缺乏灵活性。针对此问题,优化了环境作业调度模型,引入作业环境队列,细化了作业系统层状态,增加了作业调度策略可配置性,并基于环境中间件SCE实现了系统原型。经测试,在单核心服务每分钟处理近200个作业提交请求的工作负载下,无因系统和网络原因引起的作业提交出错现象;在共计1 000个作业中,近500个作业提交命令请求在0.3s以内完成,800余个作业提交命令请求在0.5s以内完成。  相似文献   

12.
消息传递机制的比较及其最新发展   总被引:1,自引:0,他引:1  
消息传递机制在分布式计算中发挥着很重要的作用.随着人们对高性能计算需求的不断扩大和各种新技术的出现,消息传递机制也处于不断的发展和完善之中.首先对两种主要的消息传递系统PvM和MPI进行了详尽的比较,比如背景、目标、移植性、通信等;然后针对它们的现状列举了最新发展情况;最后归纳了消息传递机制的发展趋势.  相似文献   

13.
In this paper we describe the design of a distributed animation system built using the Java language, a Parallel Virtual Machine platform, and the World-Wide Web. We focus on two aspects. One is the design of a platform to support distributed 3D animation, the other is the improvement of the efficiency of the parallel computing. Due to the collaborative and distributed nature of the Web, the Web browser is integrated with the distributed computing system like a Parallel Virtual Machine. The model emphasizes the separation of interface and function. It provides a very friendly and portable interface to manipulate the PVM console and the 3D animation system. To improve the efficiency of the parallel computing, we propose a new load balancing strategy, called global distributed control to balance the load in the network processors. The algorithm not only has the ability to dynamically adjust to the load imbalance, but also has the fault tolerance ability. It performs the best when it is compared with three traditional load balancing schemes.  相似文献   

14.
李静梅  张博 《计算机工程》2012,38(20):113-115
为提高片上多核处理器(CMP)架构中线程调度的执行效率,发挥CMP的并行性能,提出一种基于混合粒子群优化算法的线程调度方法.根据设计的线程调度模型,利用有向无环图表述线程及线程间的相互依赖关系,并采用改进的混合粒子群算法对其进行合理调度.实验结果表明,该方法的执行效率优于现有的遗传算法,能有效地降低任务的执行时间,充分发挥多核架构的优势.  相似文献   

15.
为了解决数据流编程模型的可用性问题,使其能在兼顾程序并行性的前提下适用于动态数据交互速率的流应用,设计了一种动态调度与静态优化相结合的数据流编译系统。编译器以COStream语言编写的源程序为输入,通过对源程序进行分析,以动态速率的数据通信边作为边界划分程序到粗粒度的子图,在子图内部应用静态优化。根据子图的每个计算单元的工作量估计计算资源的使用状况,实现子图内计算单元到处理器核的映射,经过阶段划分分配子图内计算单元到相应流水阶段。在运行时,每个子图在各个处理器核上均启动一个线程,通过对线程间通信的优化,避免了运行时多个线程对同一段内存同时读写产生的同步开销,减少了线程的上下文切换次数。使用信号量控制子图内线程间的同步,基于各子图计算单元运行时数据交互速率并结合当前线程的状态,动态调度各个子图的执行,构建动态的软件流水线,生成相应多线程目标代码。实验以通用X86-64多核处理器作为实验平台,测试和分析数据流编译的性能。实验结果表明,编译系统可以实现动态数据交互速率的数据流应用,扩大了编译系统可用性并且具有一定加速效果。  相似文献   

16.
基于TCP/IP的分布式监控系统的研究与开发   总被引:3,自引:1,他引:2  
李明  贾智平 《计算机工程与应用》2002,38(16):150-153,161
根据对企业控制网络与数据网络一体化技术的研究,文章提出了一种全TCP/IP协议的分布式监控系统结构框架,利用有关的硬件与软件技术,进行了设计与开发实现,并对分布式监控系统的核心通讯模块中多通讯线程的管理与调度进行了探讨与实现。该方案解决了传统系统结构下的许多问题,从而在企业分布式虚拟环境中,对各种资源能更实时、准确、可靠地访问及有效地管理,具备了更好的性能。  相似文献   

17.
基于粒子群算法的多核处理器线程调度研究   总被引:1,自引:1,他引:0  
为有效解决多核处理器的线程调度问题,提出了一种基于粒子群算法框架上的线程调度算法.该算法依据设计的调度模型,在线程DAG图上通过复制不在同一处理器上且存在相关性的线程,生成相互独立的子DAG图,并采用改进的粒子群优化算法对其进行合理调度,由此提高线程调度效率.仿真实现了该算法,并通过实验数据验证了该算法的优越性.  相似文献   

18.
分布式并行数据库中基于调度的多线程通信模型之研究   总被引:3,自引:0,他引:3  
分布式并行数据库系统以其高性能倍受关注,高效合理的内部通信系统是分布式并行数据库系统极其关键的组成部分、为此,在分析现有多种通信模型的基础上,建立了一种基于调度的多线程通信模型,该通信模型采用多个线程收发数据,并根据节点运行情况动态调度接收线程和发送线程,既保证了内部通信的通信性能,又不会使系统的时外处理能力成为新的瓶颈.该模型已被成功应用于成都市电子政务的系统平台——分布式并行数据库系统DPSQL。  相似文献   

19.
欧广宇  邓桂英 《微机发展》2004,14(11):101-103
多线程技术是实现需要并发执行的应用程序的较好选择,具有不可替代的作用。文中介绍了进程、线程以及应用程序域的概念及其相互之间的关系,讨论了VisualBasic.NET对多线程的支持。并从线程的创建与管理、线程取消、线程的优先级、线程的状态、线程池、线程的同步等方面展示了如何使用多线程编程技术来创建多线程应用程序。每个线程都需要资源,创建的线程过多,反而会降低应用程序的性能。在设计多线程应用程序时,应慎重对待,建立合理的系统模型,才能使应用程序获得最佳的性能。  相似文献   

20.
在网络疑似入侵环境下通过最优接口访问控制实现网络入侵的可靠性拦截,保障网络安全。传统方法采用自由链路分散控制模型进行网络入侵检测和接口访问控制,在受到较大的特征干扰下,入侵访问控制和拦截性能不好。提出一种基于自适应循环堆栈接口调度的网络疑似入侵环境下的最优接口访问控制模型。进行接口访问控制模型总体设计及组件模块分析,接口访问控制系统包括通信库、协议库、核心控制库和资源库,采用小波包自适应波束调制方法进行入侵检测算法设计,作为接口访问控制系统软件核心。通过SDICmdCon寄存器设置网络疑似入侵环境下的最优接口的内核,在嵌入式Linux环境下通过自适应循环堆栈接口调度实现接口访问控制的软件开发。仿真结果表明,采用该模型进行网络入侵检测,准确检测性能较好,通过最优接口访问控制,实现对网络入侵数据的准确识别和拦截。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号