OpenMP (original) (raw)

About DBpedia

OpenMP (التسمية المختصرة لـ Open Multi-Processing) هي واجهة برمجة التطبيقات تستعمل في الحوسبة المتوازية في بنية ذات ذاكرة مشتركة. هذه الواجهة تلقى دعما لها على عدة منصات وأنظمة تشغيل، بما فيها ويندوز ويونيكس من أجل لغات برمجة مثل C أو سي++ أو فورتران. تعرض هذه الواجهة مجموعة من الأوامر ومكتبة برمجية ومجموعة من المتغيرات النظامية. تمتع OpenMP بخاصيتين هامتين، وهما القدرة على تقبل تغيير منصة العمل وتغيير الأبعاد. كما تسمح بتطوير سريع لتطبيقات متوازية بتكتلات صغيرة مع البقاء على مسافة قريبة من التعليمات المتسلسلة.

thumbnail

Property Value
dbo:abstract OpenMP (التسمية المختصرة لـ Open Multi-Processing) هي واجهة برمجة التطبيقات تستعمل في الحوسبة المتوازية في بنية ذات ذاكرة مشتركة. هذه الواجهة تلقى دعما لها على عدة منصات وأنظمة تشغيل، بما فيها ويندوز ويونيكس من أجل لغات برمجة مثل C أو سي++ أو فورتران. تعرض هذه الواجهة مجموعة من الأوامر ومكتبة برمجية ومجموعة من المتغيرات النظامية. تمتع OpenMP بخاصيتين هامتين، وهما القدرة على تقبل تغيير منصة العمل وتغيير الأبعاد. كما تسمح بتطوير سريع لتطبيقات متوازية بتكتلات صغيرة مع البقاء على مسافة قريبة من التعليمات المتسلسلة. (ar) OpenMP (Open Multi-Processing) és una interfície de programació d'aplicacions (API) que suporta programació multiprocés amb memòria compartida multi-plataforma en C/C++ i Fortran a moltes arquitectures, incloent les plataformes Unix i Microsoft Windows. Consisteix en un conjunt de directives de compilador, rutines de biblioteques, i variables d'entorn que afecten al comportament en temps d'execució. Definit conjuntament per un grup dels principals fabricants de maquinari i programari, OpenMP és un model portable i escalable que dona als programadors una interfície simple i flexible per a desenvolupar aplicacions paral·leles per a plataformes que van des de l'escriptori fins als supercomputadors. Una aplicació construïda amb el model híbrid de programació paral·lela pot executar-se en un raïm d'ordinadors fent servir OpenMP i Message Passing Interface (MPI). (ca) OpenMP je soustava direktiv pro překladač a knihovních procedur pro paralelní programování. Jedná se o standard pro programování počítačů se sdílenou pamětí. OpenMP usnadňuje vytváření vícevláknových programů v programovacích jazycích Fortran, C a C++. První OpenMP standard pro FORTRAN 1.0 byl publikován v roce 1997. Rok poté byl uvolněn standard pro C/C++. Standard verze 2.0 byl uvolněn pro FORTRAN v roce 2000 a pro C/C++ v roce 2002, verze 3.0 v roce 2008, verze 4.0 v roce 2013, verze 4.5 v roce 2015, verze 5.0 pro C/C++ a FORTRAN potom v roce 2018. Aktuální je verze 5.1 pro C/C++ a FORTRAN, která byla uvolněna 13. listopadu 2020. (cs) OpenMP (Open Multi-Processing) ist eine seit 1997 gemeinschaftlich von mehreren Hardware- und Compilerherstellern entwickelte Programmierschnittstelle (API) für die Shared-Memory-Programmierung in C++, C und Fortran auf Multiprozessor-Computern. OpenMP parallelisiert Programme auf der Ebene von Schleifen, die in Threads ausgeführt werden, und unterscheidet sich dadurch von anderen Ansätzen (z. B. MPI), bei denen ganze Prozesse parallel laufen und durch Nachrichtenaustausch zusammenwirken. Der OpenMP-Standard definiert dazu spezielle Compiler-Direktiven, die diesen dann anweisen z. B. die Abarbeitung einer for-Schleife auf mehrere Threads oder Prozessoren zu verteilen. Alternativ gibt es Bibliotheksfunktionen und Umgebungsvariablen für die OpenMP-Programmierung. OpenMP ist zum Einsatz auf Systemen mit gemeinsamem Hauptspeicher („Shared-Memory“-Maschinen) gedacht (sogenannte UMA- und NUMA-Systeme), während andere Ansätze wie Message Passing Interface, PVM eher auf Multicomputern („Distributed-Memory“-Maschinen) aufsetzen. Bei modernen Supercomputern werden OpenMP und MPI (Message Passing Interface) oftmals zusammen eingesetzt. Dabei laufen auf einzelnen Shared-Memory-Clients OpenMP-Prozesse, die sich mittels MPI austauschen. Eine Eigenschaft von OpenMP ist, dass (bis auf Ausnahmen) die Programme auch korrekt laufen, wenn der Compiler die OpenMP-Anweisungen (siehe unten im Beispiel) nicht kennt und als Kommentar bewertet (also ignoriert). Der Grund dafür ist, dass eine mit OpenMP für mehrere Threads aufgeteilte for-Schleife auch mit einem einzelnen Thread sequentiell abgearbeitet werden kann. (de) OpenMP es una interfaz de programación de aplicaciones (API) para la programación multiproceso de memoria compartida en múltiples plataformas. Permite añadir concurrencia a los programas escritos en C, C++ y Fortran sobre la base del modelo de ejecución fork-join. Está disponible en muchas arquitecturas, incluidas las plataformas de Unix y de Microsoft Windows. Se compone de un conjunto de directivas de compilador, rutinas de biblioteca, y variables de entorno que influyen el comportamiento en tiempo de ejecución. Definido conjuntamente por proveedores de hardware y de software, OpenMP es un modelo de programación portable y escalable que proporciona a los programadores una interfaz simple y flexible para el desarrollo de aplicaciones paralelas, para plataformas que van desde las computadoras de escritorio hasta supercomputadoras. Una aplicación construida con un modelo de programación paralela híbrido se puede ejecutar en un cluster de computadoras utilizando OpenMP y MPI, o a través de las extensiones de OpenMP para los sistemas de . (es) OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, and Windows. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior. OpenMP is managed by the nonprofit technology consortium OpenMP Architecture Review Board (or OpenMP ARB), jointly defined by a broad swath of leading computer hardware and software vendors, including Arm, AMD, IBM, Intel, Cray, HP, Fujitsu, Nvidia, NEC, Red Hat, Texas Instruments, and Oracle Corporation. OpenMP uses a portable, scalable model that gives programmers a simple and flexible interface for developing parallel applications for platforms ranging from the standard desktop computer to the supercomputer. An application built with the hybrid model of parallel programming can run on a computer cluster using both OpenMP and Message Passing Interface (MPI), such that OpenMP is used for parallelism within a (multi-core) node while MPI is used for parallelism between nodes. There have also been efforts to run OpenMP on software distributed shared memory systems, to translate OpenMP into MPIand to extend OpenMP for non-shared memory systems. (en) OpenMP (Open Multi-Processing) est une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée. Cette API est prise en charge par de nombreuses plateformes, incluant GNU/Linux, OS X et Windows, pour les langages de programmation C, C++ et Fortran. Il se présente sous la forme d'un ensemble de directives, d'une bibliothèque logicielle et de variables d'environnement. OpenMP est portable et dimensionnable. Il permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel. La programmation parallèle hybride peut être réalisée par exemple en utilisant à la fois OpenMP et MPI. Le développement de la spécification OpenMP est géré par le consortium OpenMP Architecture Review Board. (fr) OpenMP(Open Multi-Processing, 오픈MP)는 공유 메모리 다중 처리 프로그래밍 API로, C, C++, 포트란 언어와, 유닉스 및 마이크로소프트 윈도우 플랫폼을 비롯한 여러 플랫폼을 지원한다. 병렬 프로그래밍의 하이브리드 모델로 작성된 응용 프로그램은 OpenMP와 메시지 전달 인터페이스 (MPI)를 둘 다 사용하거나, 더 투명성 있는 방식으로 비공유 메모리 시스템을 위한 OpenMP 확장을 사용하여 컴퓨터 클러스터 상에서 구동할 수 있다. (ko) OpenMP(オープンエムピー)は、並列計算機環境において共有メモリ・マルチスレッド型の並列アプリケーションソフトウェア開発をサポートするために標準化されたAPIである。「OpenMP」は「open multiprocessing」の略である。 同様に並列コンピューティングに利用されるMPIでは、メッセージの交換をプログラム中に明示的に記述しなければならないが、OpenMPではディレクティブを挿入することによって並列化を行う。OpenMPが使用できない環境では、このディレクティブは無視されるため、並列環境と非並列環境でほぼ同一のソースコードを使用できるという利点がある。また、プラットフォーム固有のスレッドAPIを使わず、コンパイラによって暗黙的に生成されたスレッドプールを利用してタスクを振り分けることになるため、並列プログラムを簡潔に記述できるだけでなく、複数の環境に移植しやすくなる。 MPIとの比較では、OpenMPは異なるスレッドが同一のデータを同じアドレスで参照できるのに対して、MPIでは明示的にメッセージ交換を行わなければならない。そのため、OpenMPは、SMP環境においては大きなデータの移動を行なわずにすむので高い効率が期待できる。ただし並列化の効率はコンパイラに依存するので、チューニングによる性能改善がMPIほど高くならないという問題がある。また、OpenMPはMPIに比べてメモリアクセスのローカリティが低くなる傾向があるので、頻繁なメモリアクセスがあるプログラムでは、MPIの方が高速な場合が多い。 OpenMPは、並列プログラミングにおいて最も広く利用されているAPIであるが、共有メモリに対してに近いアクセスができるハードウェアシステムアーキテクチャでは、スケーラビリティに限界がある。そのため、現在のほとんどのスーパーコンピューターでは、OpenMP単独ではなく、分散メモリ環境で高いスケーラビリティを発揮するMPIと組み合わせた、ハイブリッドMPI+OpenMPが利用されている。 現在FORTRANとC/C++について標準化が行われている。 (ja) OpenMP (ang. Open Multi-Processing) – wieloplatformowy interfejs programowania aplikacji (API) umożliwiający tworzenie programów komputerowych dla systemów wieloprocesorowych z pamięcią dzieloną. Może być wykorzystywany w językach programowania C, C++ i Fortran na wielu architekturach, m.in. Unix i Microsoft Windows. Składa się ze zbioru dyrektyw kompilatora, bibliotek oraz zmiennych środowiskowych mających wpływ na sposób wykonywania się programu. Dzięki temu, że standard OpenMP został uzgodniony przez głównych producentów sprzętu i oprogramowania komputerowego, charakteryzuje się on przenośnością, skalowalnością, elastycznością i prostotą użycia. Dlatego może być stosowany do tworzenia aplikacji równoległych dla różnych platform, od komputerów klasy PC po superkomputery. OpenMP można stosować do tworzenia aplikacji równoległych działających na wieloprocesorowych węzłach klastrów komputerowych. W tym przypadku stosuje się rozwiązanie hybrydowe, w którym programy są uruchamiane na klastrach komputerowych pod kontrolą alternatywnego interfejsu MPI, natomiast do zrównoleglenia pracy węzłów klastrów wykorzystuje się OpenMP. Alternatywny sposób polegał na zastosowaniu specjalnych rozszerzeń OpenMP dla systemów pozbawionych pamięci współdzielonej (np. Cluster OpenMP Intela). (pl) OpenMP (Open Multiprocessing) è un API multipiattaforma per la creazione di applicazioni parallele su sistemi a memoria condivisa. È supportata da vari linguaggi di programmazione come il C/C++ e il Fortran e su varie architetture di elaboratori e sistemi operativi tra cui Solaris, AIX, HP-UX, Linux, macOS e la piattaforma Windows. OpenMP è composto da un insieme di direttive di compilazione, routine di librerie e variabili d'ambiente che ne definiscono il funzionamento a run-time. OpenMP è gestito dal consorzio no profit OpenMP Architecture Review Board (or OpenMP ARB) assieme ad un gruppo di produttori di Hardware e di sviluppatori di software come AMD, IBM, Intel, Cray Inc., Hewlett-Packard, Fujitsu, NVIDIA Corporation, NEC Corporation, Microsoft Corporation, Texas Instruments, Oracle ed altri. OpenMP usa un modello scalabile e portabile che fornisce al programmatore un'interfaccia semplice e flessibile per sviluppare applicazioni di calcolo parallele che possono essere eseguite da uno standard Computer desktop fino ai Supercomputer. Un'applicazione sviluppata con il modello ibrido di programmazione parallela può essere eseguita su un Computer cluster utilizzando OpenMP e Message Passing Interface (MPI) oppure in modo trasparente utilizzando le estensioni OpenMP per i sistemi con memoria non condivisa. (it) OpenMP is een interface voor het programmeren van toepassingen (API) die het programmeren voor meerdere processoren makkelijker maakt. De MP in OpenMP staat voor Multi Processing, Open betekent dat het een open standaard is, wat zoveel betekent dat iedereen er een implementatie van mag maken, zonder dat je daar een of andere instantie voor zou moeten betalen. OpenMP is gespecificeerd voor de talen C/C++ en Fortran. Om een programma goed gebruik te laten maken van meerdere processoren is het essentieel dat er delen van het programma parallel uitgevoerd kunnen worden. Dit wordt meestal gedaan door meerdere threads aan te maken, en deze threads dan een bepaald deel van het programma uit te laten voeren. Als dit goed wordt gedaan kan er extreem goed parallellisme mee behaald worden. Het is echter ook een vrij pittige manier, omdat veel programma's normaal gesproken erg serieel van opzet zijn. Er zijn vaak maar erg weinig taken die volkomen los staan van eerdere taken. OpenMP pakt het op een heel andere manier aan. In plaats van verschillende taken los van elkaar te laten lopen probeert het (delen van) één taak, die parallel zou kunnen worden uitgevoerd, tijdens runtime over verschillende threads te verdelen. Deze groep van threads heet een . De programmeur van een programma dat OpenMP gebruikt moet door middel van compiler directives aangeven welke delen parallel uitgevoerd zouden kunnen worden. OpenMP bepaalt dan tijdens runtime welke threads welk deel van welke taak uit moeten voeren. Een voorbeeld: #pragma omp parallel forfor(int i = 0;i < 100000;i++){ array[i] = array[i] * array[i];} In dit voorbeeld geeft de expressie #pragma omp parallel for aan dat de inhoud van deze programmalus in principe parallel uitgevoerd kan worden. Het is bij deze lus namelijk niet belangrijk dat een eerdere iteratie al afgehandeld is. Of het dan uiteindelijk ook in parallel uitgevoerd gaat worden, en door hoeveel threads dat dan gedaan gaat worden mag OpenMP normaal gesproken zelf bepalen. (nl) O OpenMP (do inglês Open Multi-Processing, ou Multi-processamento aberto) é uma interface de programação de aplicativo(API) para a programação multi-processo de memória compartilhada em múltiplas plataformas. Permite acrescentar simultaneidade aos programas escritos em C, C++ e Fortran sobre a base do modelo de execução fork-join. Está disponível em muitas arquiteturas, incluindo as plataforma Unix e Microsoft Windows. É constituída por um conjunto de diretivas de compilador, rotinas de biblioteca, e variáveis de ambiente que influenciam o comportamento do tempo de execução.Definido em conjunto por um grupo principal de fornecedores de hardware e de software, o OpenMP é um modelo de programação portável e escalável que proporciona aos programadores uma interface simples e flexível para o desenvolvimento de aplicações paralelas para as plataformas que vão dos computadores de escritório até os .Uma aplicação construída com um modelo de programação paralela híbrido pode ser executado em um cluster de computadores utilizando tanto os OpenMP e MPI, ou mais transparentemente através das extensões do OpenMP para os sistemas de memória distribuída. (pt) 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、LLVM和Open64編譯器。OpenMP提供了对并行算法的高层的抽象描述,程序员通过在原始碼中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。当选择忽略这些pragma,或者编译器不支持OpenMP时,程序又可退化为通常的程序(一般为串行),程式码仍然可以正常运作,只是不能利用多线程来加速程序执行。 (zh) OpenMP (Open Multi-Processing) — це набір директив компілятора, бібліотечних процедур та змінних середовища, які призначені для програмування багатопоточних застосунків на багатопроцесорних системах із спільною пам'яттю на мовах C, C++ та Fortran. Розробку специфікації OpenMP ведуть кілька великих виробників обчислювальної техніки та програмного забезпечення, робота яких регулюється некомерційною організацією, названою OpenMP Architecture Review Board (ARB). Детальна специфікація OpenMP міститься на сторінці [Архівовано 24 квітня 2008 у Wayback Machine.]. Специфікації для мов Fortran і C/C++ з'явилися відповідно в жовтні 1997 року і жовтні 1998 року. (uk) OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Даёт описание совокупности директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью. Разработка спецификаций стандарта ведётся некоммерческой организацией OpenMP Architecture Review Board (ARB), в которую входят все основные производители процессоров, а также ряд суперкомпьютерных лабораторий и университетов. Первая версия спецификации вышла в 1997 году, предназначалась только для Фортрана, в следующем году вышла версия для Си и C++. OpenMP реализует параллельные вычисления с помощью многопоточности, в которой ведущий (англ. master) поток создаёт набор ведомых потоков, и задача распределяется между ними. Предполагается, что потоки выполняются параллельно на машине с несколькими процессорами (количество процессоров не обязательно должно быть больше или равно количеству потоков). Задачи, выполняемые потоками параллельно, так же, как и данные, требуемые для выполнения этих задач, описываются с помощью специальных директив препроцессора соответствующего языка — «прагм». Например, участок кода наФортране, который должен исполняться несколькими потоками, каждый из которых имеет свою копию переменной N, предваряется следующей директивой: !$OMP PARALLEL PRIVATE(N) Количество создаваемых потоков может регулироваться как самой программой при помощи вызова библиотечных процедур, так и извне, при помощи переменных окружения. Ключевые элементы стандарта: * конструкции для создания потоков (директива parallel), * конструкции распределения работы между потоками (директивы DO/for и section), * конструкции для управления работой с данными (выражения shared и private для определения класса памяти переменных), * конструкции для синхронизации потоков (директивы critical, atomic и barrier), * процедуры библиотеки поддержки времени выполнения (например, omp_get_thread_num), * переменные окружения (например, OMP_NUM_THREADS). (ru)
dbo:computingPlatform dbr:Cross-platform
dbo:genre dbr:Application_programming_interface dbr:C++ dbr:C_(programming_language) dbr:Fortran
dbo:latestReleaseDate 2020-11-13 (xsd:date)
dbo:latestReleaseVersion 5.1
dbo:thumbnail wiki-commons:Special:FilePath/OpenMP_logo.png?width=300
dbo:wikiPageExternalLink http://openmp.org/mp-documents/omp-hands-on-SC08.pdf http://www.openmp.org/wp-content/uploads/F95_OpenMPv1_v2.pdf https://www.openmp.org/specifications/ https://arxiv.org/pdf/2204.12835.pdf https://web.archive.org/web/20080705180752/http:/msdn.microsoft.com/msdnmag/issues/05/10/OpenMP/default.aspx https://web.archive.org/web/20130319133253/http:/openmp.org/mp-documents/omp-hands-on-SC08.pdf https://web.archive.org/web/20181116055322/https:/software.intel.com/en-us/articles/cluster-openmp-for-intel-compilers https://web.archive.org/web/20210302235321/https:/www.openmp.org/specifications/ http://software.intel.com/en-us/articles/cluster-openmp-for-intel-compilers https://www.openmp.org/ https://link.springer.com/chapter/10.1007/978-3-030-58144-2_16
dbo:wikiPageID 381842 (xsd:integer)
dbo:wikiPageLength 38571 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1124035993 (xsd:integer)
dbo:wikiPageWikiLink dbr:Amdahl's_law dbr:Programmer dbr:Rogue_Wave_Software dbr:Memory_bandwidth dbr:Unified_Parallel_C dbr:VTune dbr:Desktop_computer dbr:Processor_affinity dbr:Library_(computing) dbr:Concurrent_computing dbr:Cray dbr:Cross-platform dbr:SIMD dbr:SPMD dbr:Speedup dbr:Task_parallelism dbr:Cilk dbr:Environment_variable dbr:FreeBSD dbr:Fujitsu dbr:Function_(computer_science) dbr:GNU_Compiler_Collection dbr:GPGPU dbr:NEC dbr:Concurrency_(computer_science) dbr:Consortium dbr:The_Portland_Group dbr:Application_programming_interface dbc:Fortran dbr:Allinea_Distributed_Debugging_Tool dbr:Allinea_MAP dbr:Linux dbr:Load_balancing_(computing) dbr:MacOS dbr:Compare-and-swap dbr:Computer_cluster dbr:Embarrassingly_parallel dbr:Hardware_acceleration dbr:Parallel_computing dbr:Partitioned_global_address_space dbr:Supercomputer dbr:C++ dbr:C_(programming_language) dbr:C_preprocessor dbr:Data_parallelism dbr:Distributed_shared_memory dbr:Linearizability dbr:AMD dbr:Absoft_Fortran_Compilers dbr:Fortran dbr:Nonprofit_organization dbr:Numerical_integration dbr:POSIX_Threads dbr:Differential_equation dbr:False_sharing dbr:Fold_(higher-order_function) dbr:Fork_(system_call) dbr:Granularity_(parallel_computing) dbr:Runtime_environment dbr:HP-UX dbr:Header_file dbr:Hewlett-Packard dbr:Texas_Instruments dbr:Arm_Holdings dbc:Application_programming_interfaces dbc:C_programming_language_family dbc:Parallel_computing dbr:Chapel_(programming_language) dbr:Heterogeneous_System_Architecture dbc:Articles_with_example_Fortran_code dbr:Automatic_parallelization dbr:Bulk_synchronous_parallel dbr:Software_portability dbr:Solaris_(operating_system) dbr:Field-programmable_gate_array dbr:IBM dbr:IBM_AIX dbr:Instruction_set_architecture dbr:Intel dbr:Intel_Advisor dbr:Intel_Parallel_Studio dbr:Intel_Xe dbr:Microsoft_Windows dbr:Nvidia dbr:Operating_system dbr:Oracle_Corporation dbr:ROSE_(compiler_framework) dbr:Race_condition dbr:Red_Hat dbr:SequenceL dbr:Shared_memory_architecture dbr:X10_(programming_language) dbr:X86 dbr:Map_(parallel_pattern) dbr:Message_Passing_Interface dbr:Multiprocessing dbr:Fortran_2003 dbr:Parallel_programming dbr:Oracle_Solaris_Studio dbr:Symmetric_multiprocessing dbr:Parallel_programming_model dbr:Thread_(computer_science) dbr:Numerical_programming dbr:Compiler_directive dbr:Standard_output dbr:File:OpenMP_logo.png dbr:File:Fork_join.svg dbr:File:OpenMP_language_extensions.svg dbr:Parallware
dbp:author OpenMP Architecture Review Board (en)
dbp:date 2013-03-19 (xsd:date) 2018-11-16 (xsd:date) 2021-03-02 (xsd:date)
dbp:developer OpenMP Architecture Review Board (en)
dbp:genre Extension to C, C++, and Fortran; API (en)
dbp:latestReleaseDate 2020-11-13 (xsd:date)
dbp:latestReleaseVersion 5.100000 (xsd:double)
dbp:license Various (en)
dbp:logo dbr:File:OpenMP_logo.png
dbp:name OpenMP (en)
dbp:operatingSystem dbr:Cross-platform
dbp:platform Cross-platform (en)
dbp:url https://web.archive.org/web/20130319133253/http:/openmp.org/mp-documents/omp-hands-on-SC08.pdf https://web.archive.org/web/20181116055322/https:/software.intel.com/en-us/articles/cluster-openmp-for-intel-compilers https://web.archive.org/web/20210302235321/https:/www.openmp.org/specifications/
dbp:wikiPageUsesTemplate dbt:As_of dbt:Citation_needed dbt:Distinguish dbt:Div_col dbt:Div_col_end dbt:Full_citation_needed dbt:ISBN dbt:Infobox_software dbt:Mono dbt:Refbegin dbt:Refend dbt:Refimprove_section dbt:Reflist dbt:See_also dbt:Short_description dbt:Start_date_and_age dbt:URL dbt:Webarchive dbt:Parallel_computing
dct:subject dbc:Fortran dbc:Application_programming_interfaces dbc:C_programming_language_family dbc:Parallel_computing dbc:Articles_with_example_Fortran_code
gold:hypernym dbr:Interface
rdf:type owl:Thing dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Software106566077
rdfs:comment OpenMP (التسمية المختصرة لـ Open Multi-Processing) هي واجهة برمجة التطبيقات تستعمل في الحوسبة المتوازية في بنية ذات ذاكرة مشتركة. هذه الواجهة تلقى دعما لها على عدة منصات وأنظمة تشغيل، بما فيها ويندوز ويونيكس من أجل لغات برمجة مثل C أو سي++ أو فورتران. تعرض هذه الواجهة مجموعة من الأوامر ومكتبة برمجية ومجموعة من المتغيرات النظامية. تمتع OpenMP بخاصيتين هامتين، وهما القدرة على تقبل تغيير منصة العمل وتغيير الأبعاد. كما تسمح بتطوير سريع لتطبيقات متوازية بتكتلات صغيرة مع البقاء على مسافة قريبة من التعليمات المتسلسلة. (ar) OpenMP(Open Multi-Processing, 오픈MP)는 공유 메모리 다중 처리 프로그래밍 API로, C, C++, 포트란 언어와, 유닉스 및 마이크로소프트 윈도우 플랫폼을 비롯한 여러 플랫폼을 지원한다. 병렬 프로그래밍의 하이브리드 모델로 작성된 응용 프로그램은 OpenMP와 메시지 전달 인터페이스 (MPI)를 둘 다 사용하거나, 더 투명성 있는 방식으로 비공유 메모리 시스템을 위한 OpenMP 확장을 사용하여 컴퓨터 클러스터 상에서 구동할 수 있다. (ko) OpenMP (Open Multi-Processing) és una interfície de programació d'aplicacions (API) que suporta programació multiprocés amb memòria compartida multi-plataforma en C/C++ i Fortran a moltes arquitectures, incloent les plataformes Unix i Microsoft Windows. Consisteix en un conjunt de directives de compilador, rutines de biblioteques, i variables d'entorn que afecten al comportament en temps d'execució. Una aplicació construïda amb el model híbrid de programació paral·lela pot executar-se en un raïm d'ordinadors fent servir OpenMP i Message Passing Interface (MPI). (ca) OpenMP je soustava direktiv pro překladač a knihovních procedur pro paralelní programování. Jedná se o standard pro programování počítačů se sdílenou pamětí. OpenMP usnadňuje vytváření vícevláknových programů v programovacích jazycích Fortran, C a C++. (cs) OpenMP (Open Multi-Processing) ist eine seit 1997 gemeinschaftlich von mehreren Hardware- und Compilerherstellern entwickelte Programmierschnittstelle (API) für die Shared-Memory-Programmierung in C++, C und Fortran auf Multiprozessor-Computern. OpenMP parallelisiert Programme auf der Ebene von Schleifen, die in Threads ausgeführt werden, und unterscheidet sich dadurch von anderen Ansätzen (z. B. MPI), bei denen ganze Prozesse parallel laufen und durch Nachrichtenaustausch zusammenwirken. (de) OpenMP es una interfaz de programación de aplicaciones (API) para la programación multiproceso de memoria compartida en múltiples plataformas. Permite añadir concurrencia a los programas escritos en C, C++ y Fortran sobre la base del modelo de ejecución fork-join. Está disponible en muchas arquitecturas, incluidas las plataformas de Unix y de Microsoft Windows. Se compone de un conjunto de directivas de compilador, rutinas de biblioteca, y variables de entorno que influyen el comportamiento en tiempo de ejecución. (es) OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating systems, including Solaris, AIX, FreeBSD, HP-UX, Linux, macOS, and Windows. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior. (en) OpenMP (Open Multi-Processing) est une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée. Cette API est prise en charge par de nombreuses plateformes, incluant GNU/Linux, OS X et Windows, pour les langages de programmation C, C++ et Fortran. Il se présente sous la forme d'un ensemble de directives, d'une bibliothèque logicielle et de variables d'environnement. OpenMP est portable et dimensionnable. Il permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel. (fr) OpenMP (Open Multiprocessing) è un API multipiattaforma per la creazione di applicazioni parallele su sistemi a memoria condivisa. È supportata da vari linguaggi di programmazione come il C/C++ e il Fortran e su varie architetture di elaboratori e sistemi operativi tra cui Solaris, AIX, HP-UX, Linux, macOS e la piattaforma Windows. OpenMP è composto da un insieme di direttive di compilazione, routine di librerie e variabili d'ambiente che ne definiscono il funzionamento a run-time. (it) OpenMP is een interface voor het programmeren van toepassingen (API) die het programmeren voor meerdere processoren makkelijker maakt. De MP in OpenMP staat voor Multi Processing, Open betekent dat het een open standaard is, wat zoveel betekent dat iedereen er een implementatie van mag maken, zonder dat je daar een of andere instantie voor zou moeten betalen. OpenMP is gespecificeerd voor de talen C/C++ en Fortran. Een voorbeeld: #pragma omp parallel forfor(int i = 0;i < 100000;i++){ array[i] = array[i] * array[i];} (nl) OpenMP(オープンエムピー)は、並列計算機環境において共有メモリ・マルチスレッド型の並列アプリケーションソフトウェア開発をサポートするために標準化されたAPIである。「OpenMP」は「open multiprocessing」の略である。 同様に並列コンピューティングに利用されるMPIでは、メッセージの交換をプログラム中に明示的に記述しなければならないが、OpenMPではディレクティブを挿入することによって並列化を行う。OpenMPが使用できない環境では、このディレクティブは無視されるため、並列環境と非並列環境でほぼ同一のソースコードを使用できるという利点がある。また、プラットフォーム固有のスレッドAPIを使わず、コンパイラによって暗黙的に生成されたスレッドプールを利用してタスクを振り分けることになるため、並列プログラムを簡潔に記述できるだけでなく、複数の環境に移植しやすくなる。 OpenMPは、並列プログラミングにおいて最も広く利用されているAPIであるが、共有メモリに対してに近いアクセスができるハードウェアシステムアーキテクチャでは、スケーラビリティに限界がある。そのため、現在のほとんどのスーパーコンピューターでは、OpenMP単独ではなく、分散メモリ環境で高いスケーラビリティを発揮するMPIと組み合わせた、ハイブリッドMPI+OpenMPが利用されている。 (ja) OpenMP (ang. Open Multi-Processing) – wieloplatformowy interfejs programowania aplikacji (API) umożliwiający tworzenie programów komputerowych dla systemów wieloprocesorowych z pamięcią dzieloną. Może być wykorzystywany w językach programowania C, C++ i Fortran na wielu architekturach, m.in. Unix i Microsoft Windows. Składa się ze zbioru dyrektyw kompilatora, bibliotek oraz zmiennych środowiskowych mających wpływ na sposób wykonywania się programu. (pl) O OpenMP (do inglês Open Multi-Processing, ou Multi-processamento aberto) é uma interface de programação de aplicativo(API) para a programação multi-processo de memória compartilhada em múltiplas plataformas. Permite acrescentar simultaneidade aos programas escritos em C, C++ e Fortran sobre a base do modelo de execução fork-join. Está disponível em muitas arquiteturas, incluindo as plataforma Unix e Microsoft Windows. É constituída por um conjunto de diretivas de compilador, rotinas de biblioteca, e variáveis de ambiente que influenciam o comportamento do tempo de execução.Definido em conjunto por um grupo principal de fornecedores de hardware e de software, o OpenMP é um modelo de programação portável e escalável que proporciona aos programadores uma interface simples e flexível para o d (pt) OpenMP (Open Multi-Processing) — открытый стандарт для распараллеливания программ на языках Си, Си++ и Фортран. Даёт описание совокупности директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью. Количество создаваемых потоков может регулироваться как самой программой при помощи вызова библиотечных процедур, так и извне, при помощи переменных окружения. Ключевые элементы стандарта: (ru) OpenMP (Open Multi-Processing) — це набір директив компілятора, бібліотечних процедур та змінних середовища, які призначені для програмування багатопоточних застосунків на багатопроцесорних системах із спільною пам'яттю на мовах C, C++ та Fortran. (uk) OpenMP(Open Multi-Processing)是一套支持跨平台共享内存方式的多线程并发的编程API,使用C,C++和Fortran语言,可以在大多数的处理器体系和操作系统中运行,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X, 和Microsoft Windows。包括一套编译器指令、库和一些能够影响运行行为的环境变量。 OpenMP采用可移植的、可扩展的模型,为程序员提供了一个简单而灵活的开发平台,从标准桌面电脑到超级计算机的并行应用程序接口。 混合并行编程模型构建的应用程序可以同时使用OpenMP和MPI,或更透明地通过使用OpenMP扩展的非共享内存系统上运行的计算机集群。 (zh)
rdfs:label أوبن أم بي (ar) OpenMP (ca) OpenMP (cs) OpenMP (de) OpenMP (es) OpenMP (fr) OpenMP (it) OpenMP (ja) OpenMP (ko) OpenMP (en) OpenMP (nl) OpenMP (pl) OpenMP (pt) OpenMP (ru) OpenMP (zh) OpenMP (uk)
rdfs:seeAlso dbr:Fork–join_model
owl:differentFrom dbr:Open_MPI
owl:sameAs freebase:OpenMP wikidata:OpenMP dbpedia-ar:OpenMP dbpedia-az:OpenMP dbpedia-ca:OpenMP dbpedia-cs:OpenMP dbpedia-de:OpenMP dbpedia-es:OpenMP dbpedia-fa:OpenMP dbpedia-fr:OpenMP dbpedia-it:OpenMP dbpedia-ja:OpenMP dbpedia-ko:OpenMP http://lt.dbpedia.org/resource/OpenMP dbpedia-nl:OpenMP dbpedia-no:OpenMP dbpedia-pl:OpenMP dbpedia-pt:OpenMP dbpedia-ru:OpenMP dbpedia-sq:OpenMP dbpedia-tr:OpenMP dbpedia-uk:OpenMP dbpedia-zh:OpenMP https://global.dbpedia.org/id/4bdTS
prov:wasDerivedFrom wikipedia-en:OpenMP?oldid=1124035993&ns=0
foaf:depiction wiki-commons:Special:FilePath/Fork_join.svg wiki-commons:Special:FilePath/OpenMP_language_extensions.svg wiki-commons:Special:FilePath/OpenMP_logo.png
foaf:isPrimaryTopicOf wikipedia-en:OpenMP
foaf:name OpenMP (en)
is dbo:influenced of dbr:Cilk
is dbo:programmingLanguage of dbr:Tinker_(software)
is dbo:wikiPageDisambiguates of dbr:OMP
is dbo:wikiPageRedirects of dbr:Openmp dbr:Open_MP dbr:TCMP
is dbo:wikiPageWikiLink of dbr:Qbox dbr:Quantum_ESPRESSO dbr:List_of_concurrent_and_parallel_programming_languages dbr:List_of_finite_element_software_packages dbr:OpenWebGlobe dbr:Privatization_(computer_programming) dbr:Algorithmic_efficiency dbr:Algorithmic_skeleton dbr:Julia_(programming_language) dbr:PathScale dbr:Performance_Analyzer dbr:Performance_portability dbr:DOPIPE dbr:Unified_Parallel_C dbr:Visual_Studio dbr:David_Kuck dbr:EFDC_Explorer dbr:List_of_performance_analysis_tools dbr:List_of_quantum_chemistry_and_solid-state_physics_software dbr:List_of_sequence_alignment_software dbr:Pthreads dbr:Compiler dbr:Computational_science dbr:Concurrent_computing dbr:Cray dbr:MediaLib dbr:SYCL dbr:General-purpose_computing_on_graphics_processing_units dbr:OMP dbr:Octopus_(software) dbr:Source-to-source_compiler dbr:Openmp dbr:Cilk dbr:Clang dbr:GNU_Compiler_Collection dbr:GNU_Fortran dbr:Graph-tool dbr:Graphics_Core_Next dbr:NAS_Parallel_Benchmarks dbr:NEST_(software) dbr:Concurrency_(computer_science) dbr:The_Portland_Group dbr:LOBPCG dbr:Work_stealing dbr:Apache_Storm dbr:Libre_Graphics_Meeting dbr:Librsb dbr:Lis_(linear_algebra_library) dbr:MG-RAST dbr:Standard_Performance_Evaluation_Corporation dbr:Structured_programming dbr:Comparison_of_deep_learning_software dbr:Compute_kernel dbr:Kerrighed dbr:PAM_library dbr:Parallel_computing dbr:Parchive dbr:Xeon_Phi dbr:Stream_processing dbr:Supercomputer dbr:Transition_path_sampling dbr:Manycore_processor dbr:COIN-OR dbr:CUDA dbr:C_preprocessor dbr:Tinker_(software) dbr:Trilinos dbr:Data_parallelism dbr:List_of_C++_multi-threading_libraries dbr:Lock_(computer_science) dbr:Mira_(supercomputer) dbr:Superlubricity dbr:UPCRC_Illinois dbr:AMD_Optimizing_C/C++_Compiler dbr:Agros2D dbr:Cython dbr:FEniCS_Project dbr:Fortran dbr:Barrier_(computer_science) dbr:BrookGPU dbr:PFUnit dbr:PascalABC.NET dbr:Cell-based_models dbr:Directive_(programming) dbr:Discrete_dipole_approximation dbr:Fast_multipole_method dbr:Fat_binary dbr:Fork–join_model dbr:Grand_Central_Dispatch dbr:Graph500 dbr:Graphics_processing_unit dbr:Multi-core_processor dbr:Ateji_PX dbr:Intrinsic_function dbr:Arm_DDT dbr:Arm_MAP dbr:API dbr:Affinity_mask dbr:Chapel_(programming_language) dbr:LLVM dbr:Sun_Microsystems dbr:Heterogeneous_System_Architecture dbr:High_Performance_Fortran dbr:Thread_(computing) dbr:Digital_Automated_Identification_System dbr:Array_programming dbr:Automatic_parallelization dbr:Automatic_parallelization_tool dbr:Phyz dbr:PlayStation_3 dbr:Point_Cloud_Library dbr:Intel_Advisor dbr:Intel_C++_Compiler dbr:Intel_Debugger dbr:Intel_Inspector dbr:Intel_Parallel_Studio dbr:Microsoft_Visual_C++ dbr:Microsoft_Visual_Studio_Express dbr:Microsoft_Windows_library_files dbr:Brutus_cluster dbr:Open64 dbr:OpenACC dbr:OpenCL dbr:OpenLB dbr:Oracle_Developer_Studio dbr:ROCm dbr:ROSE_(compiler_framework) dbr:Race_condition dbr:SequenceL dbr:YaDICs dbr:Loop_optimization dbr:Loop_scheduling dbr:Map_(parallel_pattern) dbr:Message_Passing_Interface dbr:Runtime_system dbr:Sieve_C++_Parallel_Programming_System dbr:UDR dbr:FLACS dbr:FLEXPART dbr:IBM_XL_Fortran dbr:Thread-local_storage dbr:OpenNN dbr:Scalasca dbr:Multicore_Association dbr:Single_instruction,_multiple_data dbr:Single_program,_multiple_data dbr:Parallel_Thread_Execution dbr:Parallel_programming_model dbr:Parareal dbr:Structured_concurrency dbr:Open_MP dbr:TCMP
is owl:differentFrom of dbr:Open_MPI
is foaf:primaryTopic of wikipedia-en:OpenMP