訊息傳遞介面
訊息傳遞介面(,縮寫MPI)是一個平行計算的應用程式接口(API),常在超級電腦、電腦叢集等非共享內存環境程序設計。 历史 建立信息传递接口的努力始于1991夏天一小群研究员在奥地利的一个度假山庄开始的讨论。那次讨论之后,于1992年4月29-30号于維吉尼亞州威廉斯堡召开了一次关于分布式内存环境下的信息传递标准设置研讨会。在这次研讨会上讨论了对标准信息传递接口至关重要的一些基本特征,并建立了一个继续标准化此过程的工作组。杰克·唐加拉,…
共 84 篇文章
訊息傳遞介面(,縮寫MPI)是一個平行計算的應用程式接口(API),常在超級電腦、電腦叢集等非共享內存環境程序設計。 历史 建立信息传递接口的努力始于1991夏天一小群研究员在奥地利的一个度假山庄开始的讨论。那次讨论之后,于1992年4月29-30号于維吉尼亞州威廉斯堡召开了一次关于分布式内存环境下的信息传递标准设置研讨会。在这次研讨会上讨论了对标准信息传递接口至关重要的一些基本特征,并建立了一个继续标准化此过程的工作组。杰克·唐加拉,…
在图论中,一个顶点在图中的度 (degree)为与这个顶点相连接的边的数目。在多重图中,自环被计数两次。 顶点 v 的度记作\deg(v)或\deg v。图G的最大度记作Δ(G),最小度记作δ(G),分别为图中所有顶点度的最大值和最小值。 在右边的多重图中,最大度为5,最小度为0。 在正则图中,所有度都是相同的,因为我们可以直接说该图的度是多少。 完全图是正则图中的一种特殊情况,其任意两个点均相连,若顶点数为p,则该图的度为p-1。 给…
在計算機科學中,平行演算法(),或並行演算法(),是一種演算法,將計算程序分解成許多更小的步驟,並將這些步驟交由不同的運算裝置,同時進行運算,之後將運算結果合併,求出解答。與傳統的循序演算法不同,因為它可以改善多核心處理器架構下的運算速度,而日漸受到重視。 概論 註釋 相關條目 平行計算 分散式演算法
在并行计算领域,加速比用于表示当并行算法与对应的顺序执行算法相比较时,速度快了多少。 定义 加速比以如下公式定义: :S_p = \frac{T_1}{T_p} 其中: p 指CPU数量 T_1 指顺序执行算法的执行时间 T_p 指当有p个处理器时,并行算法的执行时间 当 \,S_p = p 时, \,S_p 便可称为“线性加速比”(,又名“理想加速比”)。当某一并行算法的加速比为理想加速比时,若将处理器数量加倍,执行速度也会加倍,即如…
互斥锁(,缩写 Mutex)是一种用于多线程编程中,防止两条线程同时对同一公共资源(比如全域變數)进行读写的机制。该目的通过将代码切片成一个一个的临界区域(critical section)达成。临界区域指的是一块对公共资源进行存取的代码,并非一种机制或是算法。一个程序、进程、线程可以拥有多个临界区域,但是并不一定会应用互斥锁。 需要此机制的资源的例子有:旗标、队列、计数器、中断处理程序等用于在多条并行运行的代码间传递数据、同步状态等的…
在计算机科学中,消息队列()是一种进程间通信或同一进程的不同线程间的通信方式,軟體的貯列用來處理一系列的輸入,通常是來自使用者。消息队列提供了异步的通信协议,每一個貯列中的紀錄包含詳細說明的資料,包含發生的時間,輸入裝置的種類,以及特定的輸入參數,也就是说:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。 一個 WIMP 環境像是 Microsoft Windows,藉由優先的某些形式(通常是事件的時…
事务内存()是一种并行程序设计的方式,其来自于数据库管理系统(DBMS)中的事务(Transaction)概念。事务内存目前有两种实现方式,基于软件的软件事务内存(STM)和基于硬件的HTM(Hardware Transactional Memory)。 背景 采用任务并行时必须考虑线程间同步的问题:最初步也是最通常的方法是使用锁,只有获得了锁的线程在允许访问临界区,但是使用锁会发生一些问题,诸如优先级反转(Priority inver…
POSIX线程(,常被縮寫為)是POSIX的线程标准,定义了创建和操纵线程的一套API。 实现POSIX线程标准的库常被称作pthreads,一般用于Unix-like POSIX系统,如Linux、 Solaris。但是Microsoft Windows上的实现也存在,例如直接使用Windows API实现的第三方库pthreads-w32;而利用Windows的SFU/SUA子系统,则可以使用微软提供的一部分原生POSIX API。…
多核心處理器(),又称多核微处理器,是在單個計算元件中加入兩個或以上的獨立實體中央處理單元(簡稱核心,)。這些核心可以分別獨立地執行程式指令,利用平行計算的能力加快程式的執行速度。 通常把两个或更多独立处理器封装在一个单一集成电路(IC)中的方案會稱為多核心處理器,而封裝在不同IC中的獨立處理器形成的計算機系統被稱為多處理器。在某些情况中(比如广告中),有些人会将在同一个集成电路中多个独立的单核心微处理器(或多核心微处理器)称做“多处理…
均匀访存模型(,縮寫:UMA),亦称作统一寻址技术或-{zh-cn:统一内存存取架构;zh-tw:均匀訪存模型}-,是一种用于并行计算机的共享内存架构。UMA模型中的所有处理器统一共享物理内存。在UMA架构中,访问内存位置的时间与发出请求的处理器或传输数据的内存芯片无关。UMA计算机架构通常与非均匀访存模型 (NUMA) 架构形成对比。在NUMA架构中,每个处理器可能使用私有缓存。外设也以某种方式共享。UMA模型适用于通用和多用户分时应…
分散式共享記憶體(,簡稱), 也被視為一種分散的全域地址空間 (), 是屬於電腦科學的一種機制,並可以透過硬體或軟體來進行實際操作。分散式共享記憶體主要使用在叢集電腦中,叢集電腦中的每一個網路結點(node)都有非共享的記憶體空間與共享的記憶體空間。該共享記憶體的位置空間(address space)在所有結點是一致的。簡單說,同一時間下在結點A讀取0x00001234會和結點B讀取0x00001234得到一樣的值。 参见 * 并行计算
PRAM()模型是单指令流多数据流(SIMD)并行机中的一种具有共享存储的模型。 基本定义 它假设有对其容量大小没有限制的一个共享存储器,并且有多个功能相同的处理器,在任意时刻处理器可以访问共享存储单元。根据是否可以同时读写,它又分为以下三类:PRAM-EREW,PRAM-CREW,PRAM-CRCW(其中C代表Concurrent,意为允许并发操作,E-代表Exclusive,意味排斥并发操作)。在PRAM中有一个同步时钟,所有的操作…
在計算機科學中,快取一致性(,或cache coherency),又譯為快取連貫性、快取同調,是指保留在快取記憶體中的共享資源,保持資料一致性的機制。 在一個系統中,當許多不同的裝置共享一個共同記憶體資源,在快取記憶體中的資料不一致,就會产生問題。這個問題在有數個CPU的多處理機系統中特別容易出現。 快取一致性可以分為三個層級: #在进行每個寫入運算时都立刻採取措施保证資料一致性 #每個獨立的運算,假如它造成資料值的改變,所有線程都可以…
Batcher排序网络()是由一系列Batcher比较器(Batcher's Comparator)组成的。Batcher比较器是指在两个输入端给定输入x,y,再在两个输出端输出最大值max{x,y}和最小值min{x,y}。 比较器网络是用Batcher比较器连成的完成某一功能的网络。 所谓双调序列(Bitonic Sequence)是指由一个非严格增序列X和非严格减序列Y(其中X的最小元素正好是Y的最大元素)构成的序列,比如序列(2…
Linux虛擬服务器(Linux Virtual Server,LVS)是一個虛擬的服务器集群系统,用于实现负载平衡。项目在1998年5月由章文嵩成立,是中国国内最早出现的自由软件项目之一。 目标 使用集群技术和Linux操作系统实现一个高性能、高可用的服务器。 很好的可伸缩性。 很好的可靠性。 很好的可管理性。 目前已是Linux內核的一部分,可通過ipvsadm管理LVS。 外部链接 http://www.linuxvirtuals…
Jafka 是一个开源的、高性能的、跨语言分布式,使用GitHub托管。 Jafka 最早是由Apache孵化的Kafka(由LinkedIn捐助给Apache)克隆而来。 特色 消息持久化非常快,服务端存储消息的开销为O(1),并且基于文件系统,能够持久化TB级的消息而不损失性能。 吞吐量取决于网络带宽。 完全的分布式系统,broker、producer、consumer都原生自动支持分布式。自动实现复杂均衡。 内核非常小,整个系统(…
*'(Open Multi-Processing)是一套支持跨平台共享内存方式的多线程并发的编程API,使用C,C++和Fortran语言,可以在大多数的处理器体系和操作系统中运行,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X, 和Microsoft Windows。包括一套编译器指令、库和一些能够影响运行行为的环境变量。 OpenMP采用可移植的、可扩展的模型,为程序员提供了一个简单而灵活的开发…
循环展开(Loop unwinding或loop unrolling),是一种牺牲程序的大小来加快程序执行速度的优化方法。可以由-{zh-hans:程序员; zh-hant:程式設計師;}-完成,也可由编译器自动优化完成。 循环展开最常用来降低循环开销,为具有多个功能单元的处理器提供指令级并行。也有利于-{zh-hans:指令流水线; zh-hant:指令管線化;}-的调度。 例子 for (i = 1; i 可以如此循环展开: for…
FireStream是ATI研發的一个流处理器系列,在AMD收購ATI後改為 Firepro S 系列,建基于Radeon图形显示芯片,提供高性能计算能力。FireStream产品中的显核不是用來作3D加速用途,而是利用显核内置的强大像素处理器變成一群并行处理器,作为浮点运算协处理器,协助中央处理器计算复杂的浮点运算程序,例如複雜的科学運算。 而早在数年前,人們就意識到GPU不但可以處理图形數據,還可以處理其他數據。BionicFX就試…
将一个网络A嵌入(英语:Transclusion)到另一个网络B中是指将A中的各节点映射到B的节点。 嵌入质量的量化 膨胀系数(英语:Dilation)膨胀系数是指被嵌网络在主嵌网络中对应的边数(即链路数)。如果系数为1,则称为完美嵌入。例如,2-D环绕可完美嵌入到超立方体连接中去。 参阅 * 并行计算