徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

OpenMP

指数 OpenMP

OpenMP(Open Multi-Processing)是一套支持跨平台共享内存方式的多线程并发的编程API,使用C,C++和Fortran语言,可以在大多数的处理器体系和操作系统中运行,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X, 和Microsoft Windows。包括一套编译器指令、库和一些能够影响运行行为的环境变量。 OpenMP采用可移植的、可扩展的模型,为程序员提供了一个简单而灵活的开发平台,从标准桌面电脑到超级计算机的并行应用程序接口。 混合并行编程模型构建的应用程序可以同时使用OpenMP和MPI,或更透明地通过使用OpenMP扩展的非共享内存系统上运行的计算机集群。 OpenMP是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性注释(Compiler Directive)。OpenMP支持的程式語言包括C语言、C++和Fortran;而支持OpenMP的编译器包括Sun Studio和Intel Compiler,以及開放源碼的GCC和Open64編譯器。OpenMP提供了对并行算法的高层的抽象描述,程序员通过在原始碼中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenMP时,程序又可退化为通常的程序(一般为串行),程式码仍然可以正常运作,只是不能利用多线程来加速程序执行。.

31 关系: AIX多线程头文件并行计算应用程序接口任务并行开放源代码圖形處理器共享内存CC++C语言环境变量編譯器編譯程式定向编程语言訊息傳遞介面计算机集群資料平行跨平台英特尔FortranGCCGNU/LinuxHP-UXMac OS XMicrosoft WindowsOpen64SolarisSun Studio源代码

AIX

#重定向 IBM AIX.

新!!: OpenMP和AIX · 查看更多 »

多线程

多執行緒(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬體支援而能够在同一时间执行多於一个线程,进而提升整体处理效能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。 软件多线程。即便处理器只能运行一个线程,操作系统也可以通过快速的在不同线程之间进行切换,由於时间间隔很小,来给用户造成一种多个线程同时运行的假象。这样的程序运行机制被称为软件多线程。如微软的Windows作业系统和Linux就是在各个不同的执行绪间来回切换,被称为单人多工作业系统。而DOS这类文字介面作业系统在一个时间只能处理一项工作,被视为单人单工作业系统。 除此之外,许多系统及处理器也支持硬件多线程技术。对称多处理机(SMP)系统具有多个处理器,所以具有真正的同时执行多个线程的能力;CMP技术通过在一块芯片上集成多个核心(Core)也具有真正的多线程能力;CMT技术则稍有不同,有的是依靠硬件执行线程切换来获得多线程能力,操作系统不再负责线程切换,因而这部分开销可以减少甚至消除,这方面典型的例子是Sun的UltraSPARC T1,它同时综合了CMP和CMT。微軟的Windows 2000以後的作業系統皆支援多執行緒與超執行緒技術。.

新!!: OpenMP和多线程 · 查看更多 »

头文件

在程序设计中,特别是在C语言和C++中,头文件或包含文件是一个文件,通常是源代码的形式,由编译器在处理另一个源文件的时候自动包含进来。一般来说,程序员通过编译器指令将头文件包含进其他源文件的开始(或头部)。 一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以被放在一个头文件中,并在需要的地方包含这个头文件。 在C语言和C++中,标准库函数习惯上在头文件中声明,参见C标准函式库和C++标准函式库。.

新!!: OpenMP和头文件 · 查看更多 »

并行计算

并行计算(parallel computing)一般是指许多指令得以同时进行的计算模式。在同時進行的前提下,可以將計算的過程分解成小部份,之後以並行方式來加以解決。 電腦軟體可以被分成數個運算步驟來執行。為了解決某個特定問題,軟體採用某個演算法,以一連串指令執行來完成。傳統上,這些指令都被送至單一的中央处理器,以循序方式執行完成。在這種處理方式下,單一時間中,只有單一指令被執行(processor level: 比较微处理器,CISC, 和RISC,即流水线Pipeline的概念,以及后来在Pipeline基础上以提高指令处理效率为目的的硬件及软件发展,比如branch-prediction, 比如forwarding,比如在每个运算单元前的指令堆栈,汇编程序员对programm code的顺序改写)。平行運算採用了多個運算單元,同時執行,以解決問題。.

新!!: OpenMP和并行计算 · 查看更多 »

应用程序接口

应用程序接口(Application Programming Interface,简称:API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由於近年來软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。.

新!!: OpenMP和应用程序接口 · 查看更多 »

任务并行

任務平行(Task parallelism),也稱為功能平行(function parallelism)或控制平行(control parallelism),是平行計算程序设计模型的一种。在这个模型中,每一个线程执行一个分配到的任务,而这些线程则被分配(通常是操作系统内核)到该并行计算体系的各个计算节点中去。.

新!!: OpenMP和任务并行 · 查看更多 »

开放源代码

開放原始碼(Open Source)描述了一种在产品的出品和开发中提供最终源材料的做法。在這個詞廣泛使用前,開發者和生產者使用很多詞去描述這個概念;開放源代碼在互聯網上獲得廣泛使用,參加者需要大量更新電腦原始碼。開放源代碼使得生產模組、通訊管道、互動社群獲得改善。隨後,一個新著作權、軟體授權條款、域名和消費者提供建立的,一個新詞開源軟體誕生。 開源模型概念包括同時間不同時程和方法來生產,相對而言,更加集中式的軟体設計模型,例如典型的商業軟体公司。一個開源軟体開發的主要原則和慣例是易貨貿易和合作的同儕生產,經由免費公開的最終產品、原始資訊、藍圖和--。這逐漸應用在其它領域,例如生物技術。.

新!!: OpenMP和开放源代码 · 查看更多 »

圖形處理器

圖形處理器(graphics processing unit,縮寫:GPU),又稱顯示核心、視覺處理器、顯示晶片或繪圖晶片,是一種專門在個人電腦、工作站、遊戲機和一些行動裝置(如平板電腦、智慧型手機等)上執行繪圖運算工作的微處理器。 圖形處理器是輝達公司(NVIDIA)在1999年8月發表精視 256(GeForce 256)繪圖處理晶片時首先提出的概念,在此之前,電腦中處理影像輸出的顯示晶片,通常很少被視為是一個獨立的運算單元。而對手冶天科技(ATi)亦提出視覺處理器(Visual Processing Unit)概念。圖形處理器使顯示卡减少了對中央處理器(CPU)的依赖,並分擔了部分原本是由中央處理器所擔當的工作,尤其是在進行三維繪圖運算時,功效更加明顯。圖形處理器所採用的核心技術有硬體座標轉換與光源、立體環境材質貼圖和頂點混合、纹理壓缩和凹凸映射貼圖、雙重纹理四像素256位渲染引擎等。 圖形處理器可單獨與專用電路板以及附屬組件組成顯示卡,或單獨一片晶片直接內嵌入到主機板上,或者內建於主機板的北橋晶片中,現在也有內建於CPU上組成SoC的。個人電腦領域中,在2007年,90%以上的新型桌上型電腦和筆記型電腦擁有嵌入式繪圖晶片,但是在效能上往往低於不少獨立顯示卡。但2009年以後,AMD和英特爾都各自大力發展內建於中央處理器內的高效能整合式圖形處理核心,它們的效能在2012年時已經勝於那些低階獨立顯示卡,這使得不少低階的獨立顯示卡逐漸失去市場需求,兩大個人電腦圖形處理器研發巨頭中,AMD以AMD APU產品線取代旗下大部分的低階獨立顯示核心產品線。而在手持裝置領域上,隨著一些如平板電腦等裝置對圖形處理能力的需求越來越高,不少廠商像是高通(Qualcomm)、PowerVR、ARM、NVIDIA等,也在這個領域裏紛紛「大展拳腳」。 GPU不同于传统的CPU,如Intel i5或i7处理器,其内核数量较少,专为通用计算而设计。 相反,GPU是一种特殊类型的处理器,具有数百或数千个内核,经过优化,可并行运行大量计算。 虽然GPU在游戏中以3D渲染而闻名,但它们对运行分析、深度学习和机器学习算法尤其有用。 GPU允许某些计算比传统CPU上运行相同的计算速度快10倍至100倍。.

新!!: OpenMP和圖形處理器 · 查看更多 »

共享内存

共享内存,分为两种:.

新!!: OpenMP和共享内存 · 查看更多 »

C

C,c是拉丁字母中的第3个字母。在伊特鲁里亚语中,爆破辅音没有明显的发音,所以他们把希腊语中的Γ, γ(Gamma)来书写他们的/k/。开始的时候,罗马人同时使用它来书写/k/和/g/,后来在它的右中部加了一横杠变成G。可能在更早的时候,只有/g/,而用K表示/k/。 一些学者表示,闪族语的ג是骆驼的图形。/k/在拉丁语中发展成上腭音和软腭音音位变体,这可能是由于伊特鲁里亚语的影响。因此,今天的C有很多不同的音值:在法语和西班牙语中为:和,在意大利中的和(像英语中的CH)等等。.

新!!: OpenMP和C · 查看更多 »

C++

C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.

新!!: OpenMP和C++ · 查看更多 »

C语言

C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.

新!!: OpenMP和C语言 · 查看更多 »

环境变量

在所有 Unix 和 类Unix系统中, 每个进程都有其各自的环境变量设置。 缺省情况下, 当一个进程被创建时, 除了创建过程中的明确更改外,它继承了其父进程的绝大部分环境设置。 在API层级上, 使用fork和exec函数进行变量设置。或利用bashshell文件, 使用特殊的命令调用来改变环境变量:通过env 间接替代或者使用ENVIRONMENT_VARIABLE.

新!!: OpenMP和环境变量 · 查看更多 »

編譯器

编译器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。 它主要的目的是將便于人编写、阅读、维护的高级计算机语言所寫作的原始碼程式,翻译为计算机能解读、运行的低阶机器语言的程序,也就是執行檔。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高阶语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。 一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 執行檔(executables), 最後打包好的檔案就可以給電腦去判讀執行了。.

新!!: OpenMP和編譯器 · 查看更多 »

編譯程式定向

在電腦科學中,一個編譯程式定向是由程式師嵌入於原始程式碼的資料,以告知編譯器當如何編譯,其他原始程式碼則告知編譯器應當編譯什麼。.

新!!: OpenMP和編譯程式定向 · 查看更多 »

编程语言

编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.

新!!: OpenMP和编程语言 · 查看更多 »

訊息傳遞介面

訊息傳遞界面/接口(Message Passing Interface,縮寫MPI)是一個平行計算的應用程式接口(API),常在超級電腦、電腦叢集等非共享內存環境程序設計。.

新!!: OpenMP和訊息傳遞介面 · 查看更多 »

计算机集群

计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。.

新!!: OpenMP和计算机集群 · 查看更多 »

資料平行

資料平行(Data parallelism,又譯為數據平行),是一種多處理器的平行運算模式,將資料分配到不同的平行運算節點中。資料平行把大的任务化解成若干个相同的子任务,处理起来比任务平行简单。.

新!!: OpenMP和資料平行 · 查看更多 »

跨平台

跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.

新!!: OpenMP和跨平台 · 查看更多 »

英特尔

英特爾公司(Intel Corporation,、)是世界上最大的半導體公司,也是第一家推出x86架構處理器的公司,總部位於美國加利福尼亞州聖克拉拉。由羅伯特·諾伊斯、高登·摩爾、安迪·葛洛夫,以“集成電子”(Integrated Electronics)之名在1968年7月18日共同創辦公司,將高階晶片設計能力與領導業界的製造能力結合在一起。英特爾也有開發主機板晶片組、網路卡、快閃記憶體、繪圖晶片、嵌入式處理器,與對通訊與運算相關的產品等。“Intel Inside”的廣告標語與Pentium系列處理器在1990年代間非常成功的打響英特爾的品牌名號。 英特爾早期在開發SRAM與DRAM的記憶體晶片,在1990年代之前這些記憶體晶片是英特爾的主要業務。在1990年代時,英特爾做了相當大的投資在新的微處理器設計上與培養快速崛起的PC工業。在這段期間英特爾成為PC微處理器的供應領導者,而且市場定位具有相當大的攻勢與有時令人爭議的行銷策略,就像是微軟公司一樣支配著PC工業的發展方向。而Millward Brown Optimor發表的2007年在世界上最強大的品牌排名顯示出英特爾的品牌價值由第15名掉落了10個名次到第25名。 而主要競爭對手有AMD、NVIDIA及Samsung。.

新!!: OpenMP和英特尔 · 查看更多 »

Fortran

福傳(Fortran),源自於「公式翻译」(Formula Translation)的縮寫,是一種程式語言。1957年由IBM開發出,是世界上第一个被正式采用並流传至今的高级编程語言。.

新!!: OpenMP和Fortran · 查看更多 »

GCC

GNU编译器套裝(GNU Compiler Collection,縮寫為GCC),指一套编程語言编译器,以GPL及LGPL許可證所發行的自由軟體,也是GNU計畫的关键部分,也是GNU工具链的主要組成部份之一。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。1985年由理查德·马修·斯托曼開始發展,現在由自由軟體基金會負責維護工作。 原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC在发布后很快地得到擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java、Ada,Go與其他語言。 許多操作系統,包括許多类Unix系統,如Linux及BSD家族都採用GCC作為标准编译器。蘋果電腦预装的Mac OS X操作系统也採用這個編譯器。 GCC原本用C開發,後來因為LLVM、Clang的崛起,它更快地將開發語言轉換為C++。許多C的愛好者在對C++一知半解的情況下主觀認定C++的性能一定會輸給C,但是Ian Lance Taylor給出了不同的意見,並表明C++不但性能不輸給C,而且能設計出更好,更容易維護的程式(、)。.

新!!: OpenMP和GCC · 查看更多 »

GNU/Linux

#重定向 Linux.

新!!: OpenMP和GNU/Linux · 查看更多 »

HP-UX

HP-UX(取自Hewlett Packard UniX)是惠普科技公司(HP, Hewlett-Packard)以System V為基礎所研發成的類UNIX作業系統。HP-UX可以在HP的PA-RISC處理器、Intel的Itanium處理器的電腦上執行,另外過去也能用於後期的阿波羅電腦(Apollo/Domain)系統上。較早版本的HP-UX也能用於HP 9000系列200型、300型、400型的電腦系統(使用Motorola的68000處理器)上,和HP-9000系列500型電腦(使用HP專屬的FOCUS處理器架構)。.

新!!: OpenMP和HP-UX · 查看更多 »

Mac OS X

#重定向 MacOS.

新!!: OpenMP和Mac OS X · 查看更多 »

Microsoft Windows

Microsoft Windows(中文有时譯作微軟--,通常不做翻译)是微軟公司推出的一系列操作系统。它問世於1985年,起初是MS-DOS之下的桌面環境,其後續版本逐漸發展成為主要为個人電腦和服务器用户設計的操作系統,并最终获得了世界个人电脑操作系統的垄断地位。此操作系統可以在几种不同类型的平台上运行,如个人电脑(PC)、移动裝置、服务器(Server)和嵌入式系統等等,其中在个人电脑的领域应用内最为普遍。在2004年國際數據資訊公司一次有关未来发展趋势的会议上,副董事长Avneesh Saxena宣布Windows拥有终端操作系统大约70%的市场份额 www.linuxworld.com.au。 Windows操作系統目前最新的穩定版是於2015年7月29日發佈的 Windows 10。Windows Server目前最新的穩定版是2016年9月26日發佈的Windows Server 2016。.

新!!: OpenMP和Microsoft Windows · 查看更多 »

Open64

Open64是一套針對Itanium 及 x86-64架構最佳化的編譯器,它以GNU自由文档许可证所發行。Open64源自於一套SGI為MIPS R10000處理器所開發的編譯器MIPSPro,它於2000年首次發行並命名為Pro64,隔年特拉华大学將其改名為Open64並為其把關。目前Open64經常作為編譯器以及计算机系统结构研究領域的研究平台。Open64支援的語言包括C语言、C++及Fortran 77/95以及OpenMP,它可以進行高品質的跨行程最佳化及分析(interprocedural analysis)、数据流分析、資料相依性分析以及陣列區域分析;而支援的操作系統包括Linux及類Unix系統;Open64支援的處理器架構包括IA-32(x86)與x86-64、IA-64、龙芯(MIPS)及PowerPC。.

新!!: OpenMP和Open64 · 查看更多 »

Solaris

Solaris原先是太阳微系统公司研制的类Unix操作系统,在Sun公司被Oracle併購後被稱作Oracle Solaris。目前最新版为Solaris 11。早期的Solaris是由BSDUnix发展而来。这是因为昇陽公司的创始人之一,比爾·喬伊(Bill Joy)来自柏克萊加州大學(U.C.Berkeley)。但是随着时间的推移,Solaris现在在接口上正在逐渐向System V靠拢。2005年6月14日,Sun公司将正在开发中的Solaris 11的源代码以CDDL许可开放,这一开放版本就是OpenSolaris。2010年8月23日,OpenSolaris項目被Oracle中止。2011年11月9日,Solaris 11發佈。 Sun的操作系统最初叫做SunOS,SunOS 5.0开始,SUN的操作系统开发开始转向System V 4,并有了新名字Solaris 2.0;Solaris 2.6以后,SUN删除了版本号中的「2」,因此,SunOS 5.10叫做Solaris 10。Solaris的早期版本后来又被重新命名为Solaris 1.x。因为“SunOS”这个词被用做专指Solaris操作系统的内核,因此Solaris被认为是由SunOS、图形化的桌面计算环境以及它的网络增强部分组成。.

新!!: OpenMP和Solaris · 查看更多 »

Sun Studio

Sun Studio為昇陽電腦的旗艦級軟體開發產品,現有Solaris、Linux版本。 包含最新的多核新系統,其提供經過優化的C、C++和Fortran編譯器、函式庫、效能檢測器、除錯器於SPARC架構的Solaris系統和x86/x86-64架構的Solaris、Linux平台。 Sun Studio可於其免費下載。 ""Sun Studio"'以往亦稱作:「Sun WorkShop」、「Forte Developer」,和「SunPro Compilers」。.

新!!: OpenMP和Sun Studio · 查看更多 »

源代码

源代码(Source code),也称源程序,是指一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现;但最常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。.

新!!: OpenMP和源代码 · 查看更多 »

传出传入
嘿!我们在Facebook上吧! »