Message Passing Interface (original) (raw)
La interfaz de paso de mensajes o MPI (sigla del inglés message passing interface) es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores, escritas generalmente en C, C++, Fortran y Ada. La ventaja de MPI sobre otras bibliotecas de paso de mensajes, es que los programas que utilizan la biblioteca son portables (dado que MPI ha sido implementado para casi toda arquitectura de memoria distribuida), y rápidos, (porque cada implementación de la biblioteca ha sido optimizada para el hardware en la cual se ejecuta).
Property | Value |
---|---|
dbo:abstract | MPI (Message-Passing Interface, interfície de pas de missatges) és una especificació d'interfície de biblioteca en el que totes les operacions són expressades com a funcions, subrutines o mètodes enllaçats normalment als llenguatges C i Fortran. Cal destacar que aquesta especificació és la més utilitzada actualment per a la programació concurrent en entorns en la que la comunicació es fa a través de missatges i se la considera l'estàndard de referència. L'objectiu principal de l'MPI és formar un estàndard que sigui àmpliament utilitzat en programes que requereixin utilitzar missatges per comunicar-se, per això, la interfície intenta ser pràctica, portable, eficient i flexible per tal d'incrementar la productivitat a l'hora de fer aquest tipus d'algoritmes. Els altres objectius de l'MPI es poden trobar en la següent llista: 1. * Dissenyar una interfície de programació d'aplicacions 2. * Permetre una comunicació eficient: això s'assoleix evitant les còpies de memòria a memòria, permetent solapar la comunicació amb la computació i afegir sobrecarrega per permetre la comunicació dels co-processadors quan sigui possible 3. * Permetre que les implementacions es puguin utilitzar en entorns heterogenis 4. * Permetre dotar als llenguatges C i Fortran de directives convenients 5. * Assolir una interfície de comunicació fiable: l'usuari no necessita bregar amb els errors de les comunicacions, ja que aquestes comunicacions es fan en un subsistema de comunicació intern 6. * Definir una interfície que pugui ser implementada en qualsevol plataforma dels venedors sense haver de modificar les comunicacions internes i el software del sistema 7. * La semàntica de la interfície hauria de ser independent del llenguatge 8. * La interfície hauria de ser dissenyada per assegurar la seguretat dels threads (ca) Message Passing Interface (dále jen MPI) je knihovna implementující stejnojmennou specifikaci (protokol) pro podporu paralelního řešení výpočetních problémů v počítačových clusterech. Konkrétně se jedná o rozhraní pro vývoj aplikací (API) založené na zasílání zpráv mezi jednotlivými uzly. Jedná se jak o zprávy typu point-to-point, tak o globální operace. Knihovna podporuje jak architektury se sdílenou pamětí, tak s pamětí distribuovanou (dnes častější). Z pohledu referenčního modelu ISO/OSI je protokol posazen do páté, tedy relační vrstvy, přičemž většina implementací používá jako transportní protokol TCP. Toto API je nezávislé na programovacím jazyce, neboť se jedná především o síťový protokol. Nejčastěji se však setkáme s implementací v C, C++, Javě, Pythonu, Fortranu a výjimkou není ani podpora přímo na úrovni hardwaru. Při návrhu celého rozhraní i při jeho implementaci byl vždy kladen důraz především na výkon, škálovatelnost a přenositelnost. K nevýhodám, ale zároveň také výhodám této knihovny patří její nízkoúrovňový přístup. Nehodí se tedy pro rychlý vývoj aplikací (RAD), ale spíše pro aplikace, kde je rozhodující rychlost běhu aplikace, což je ale pro paralelní systémy typické. To je i možná důvodem, proč se stala v této oblasti de-facto standardem. Ke standardizačnímu řízení u některé ze známých organizací zabývajících se standardy, jako např. ISO, IEEE apod., však zatím nedošlo. (cs) واجهة تمرير الرسائل (بالإنجليزية: Message Passing Interface MPI) هي واجهة برمجة التطبيقات التي تسمح للأعمال (processes) بالتواصل فيما بينها من خلال تبادل رسائل. الطريقة مستعملة أيضا بين البرمجيات المتوازية مشغلة على حاسوب عملاق أو حيث الوصول لذاكرة غير محلية مكلف للغاية. يرجع الفضل في تطوير الواجهة إلى ويليام جروب وإروين لوسك وغيرهما. قد يحتاج المبرمج لحل مشاكل ضخمة، والتعامل مع مجال ذاكري أكبر، أو ربما قد يحتاج ببساطة لحل مشاكل بسرعة أكبر من الممكن تحقيقها على حواسيب تسلسلية. بالإمكان عندها الانتقال إلى البرمجة التفرعية والحواسيب التفرعية للتعامل مع هذه الاحتياجات. إن استخدام أساليب البرمجة التفرعية على حواسيب تفرعية يمنحك الوصول لموارد ذاكرية أكبر وموارد وحدة المعالجة المركزية CPU غير متاحة على حواسيب تسلسلية. أحد الأساليب الأساسية في البرمجة التفرعية هو استخدام مكتبات تمرير الرسائل. تؤمن هذه المكتبات إدارة نقل المعطيات بين مقاطع من برامج تفرعية تعمل (عادةً) على معالجات متعددة في بنية حوسبة تفرعية (ar) Message Passing Interface (MPI) ist ein Standard, der den Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen beschreibt. Er legt dabei eine Sammlung von Operationen und ihre Semantik, also eine Programmierschnittstelle fest, aber keine Implementierung. Eine MPI-Applikation besteht in der Regel aus mehreren miteinander kommunizierenden Prozessen, die alle zu Beginn der Programmausführung parallel gestartet werden. Alle diese Prozesse arbeiten dann gemeinsam an einem Problem und nutzen zum Datenaustausch Nachrichten, welche explizit von einem zum anderen Prozess geschickt werden. Ein Vorteil dieses Prinzips ist es, dass der Nachrichtenaustausch auch über Rechnergrenzen hinweg funktioniert. Parallele MPI-Programme sind somit sowohl auf PC-Clustern (hier funktioniert der Austausch der Nachrichten z. B. über TCP), als auch auf dedizierten Parallelrechnern ausführbar (hier läuft der Nachrichtenaustausch über ein Hochgeschwindigkeitsnetz wie InfiniBand oder Myrinet oder über den gemeinsamen Hauptspeicher). (de) La interfaz de paso de mensajes o MPI (sigla del inglés message passing interface) es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores, escritas generalmente en C, C++, Fortran y Ada. La ventaja de MPI sobre otras bibliotecas de paso de mensajes, es que los programas que utilizan la biblioteca son portables (dado que MPI ha sido implementado para casi toda arquitectura de memoria distribuida), y rápidos, (porque cada implementación de la biblioteca ha sido optimizada para el hardware en la cual se ejecuta). (es) Message Passing Interface (MPI) est un outil pour le calcul scientifique à haute performance qui permet d'utiliser plusieurs ordinateurs. C'est une norme conçue en 1993-94 pour le passage de messages entre ordinateurs distants ou dans un ordinateur multiprocesseur. Elle est devenue de facto un standard de communication pour des nœuds exécutant des programmes parallèles sur des systèmes à mémoire distribuée. Elle définit une bibliothèque de fonctions, utilisable avec les langages C, C++ et Fortran. MPI a été écrite pour obtenir de bonnes performances aussi bien sur des machines massivement parallèles à mémoire partagée que sur des clusters d'ordinateurs hétérogènes à mémoire distribuée. Elle est disponible sur de très nombreux matériels et systèmes d'exploitation. Ainsi, MPI possède l'avantage par rapport aux plus vieilles bibliothèques de passage de messages d'être grandement portable (car MPI a été implémentée sur presque toutes les architectures de mémoires) et rapide (car chaque implémentation a été optimisée pour le matériel sur lequel il s'exécute). Depuis 1997, une nouvelle version de MPI est disponible, MPI-2, qui apporte quelques puissantes[évasif] fonctionnalités supplémentaires[Lesquels ?]. Depuis 2015, une nouvelle version de MPI est disponible, MPI-3, qui apporte des écritures parallèles dans les fichiers. Depuis 2020, une nouvelle version de MPI est disponible, MPI-4, qui apporte le RDMA et la prévision de détection automatique en cas de panne. (MPI Forum) (fr) Message Passing Interface (MPI) is a standardized and portable message-passing standard designed to function on parallel computing architectures. The MPI standard defines the syntax and semantics of library routines that are useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several open-source MPI implementations, which fostered the development of a parallel software industry, and encouraged development of portable and scalable large-scale parallel applications. (en) Message Passing Interface(メッセージ パッシング インターフェース、MPI)とは、並列コンピューティングを利用するための標準化された規格である。実装自体を指すこともある。 複数のCPUが情報をバイト列からなるメッセージとして送受信することで協調動作を行えるようにする。自由に使用できる実装としてはMPICHが有名である。他にも商用ベンダなどによる独自の実装が存在する。 ライブラリレベルでの並列化であるため、言語を問わず利用でき、プログラマが細密なチューニングを行えるというメリットがある一方、利用にあたっては明示的に手続きを記述する必要があり、ロックの対処などもプログラマ側が大きな責任をもたなければならない。 業界団体や研究者らのメンバからなる MPI Forum によって規格が明確に定義されているため、ある環境で作成したプログラムが他の環境でも動作することが期待できる。 (ja) Il Message Passing Interface (MPI) è un protocollo di comunicazione per computer. È di fatto lo standard per la comunicazione tra nodi appartenenti a un cluster di computer che eseguono un programma parallelo multi-nodo. MPI rispetto alle precedenti librerie utilizzate per il passaggio di parametri tra nodi, ha il vantaggio di essere molto portabile (MPI è stata implementata per moltissime architetture parallele) e veloce (MPI viene ottimizzato per ogni architettura).Lo standard, alla versione 3.1, definisce la sintassi delle chiamate MPI per i linguaggi C e Fortran. (it) 메시지 전달 인터페이스(Message Passing Interface, MPI)는 분산 및 병렬 처리에서 정보의 교환에 대해 기술하는 표준이다.병렬 처리에서 정보를 교환할 때 필요한 기본적인 기능들과 문법, 그리고 프로그래밍 API에 대해 기술하고 있지만 구체적인 프로토콜이나 각각의 구현에 대한 것에 대해서는 기술하지 않는, 하나의 거시적인 테두리를 정해주는 표준으로 이해할 수 있다. 실제적인 MPI 애플리케이션은 서로 정보를 주고받는 여러개의 프로세스들로 이루어져 있는데, 이 각각의 프로세스들은 MPI 애플리케이션이 구동될 때에 모두 병렬적으로 시작된다. 이 각각의 프로세스들은 모두 하나의 문제를 풀기위해 한 프로세스에서 다른 프로세스로 데이터와 정보들을 필요에 따라 서로 주고 받게 된다. 이러한 원리의 장점은 하드웨어적으로 분산되어있는 컴퓨터들 간에도 이런 데이터와 정보들을 주고 받을 수 있다는 점이다. 그래서 특별히 병렬처리를 위해 만들어진 병렬 컴퓨터(공유 메모리를 지녔다거나, 인피니밴드 혹은 Myrinet 등을 통해 고속으로 정보를 주고받는 것이 가능하게 만들어진) 뿐만 아니라, (TCP를 통해 정보들이 교환되는) PC 들로 이루어진 PC 클러스터(PC-Cluster) 에서도 이런 병렬 MPI 프로그램들은 잘 돌아간다. (ko) De Message Passing Interface (MPI) is een standaard voor een softwarebibliotheek die communicatie tussen processen vereenvoudigt en zo helpt bij het programmeren van (grootschalige) parallelle computers. Er bestaan MPI-interfaces voor de programmeertalen Fortran 77 en C, de meestgebruikte talen voor het programmeren van supercomputers. (nl) Message Passing Interface (MPI, z ang., interfejs transmisji wiadomości) – protokół komunikacyjny będący standardem przesyłania komunikatów pomiędzy procesami działających na jednym lub więcej komputerach. Interfejs ten wraz z protokołem oraz semantyką specyfikuje, jak jego elementy winny się zachowywać w dowolnej implementacji. Celami MPI są wysoka jakość, skalowalność oraz przenośność. MPI jest dominującym modelem wykorzystywanym obecnie w klastrach komputerów oraz superkomputerach. Pierwsza wersja standardu ukazała się w maju 1994 r. Standard MPI implementowany jest najczęściej w postaci bibliotek, z których można korzystać w programach tworzonych w różnych językach programowania, np. C, C++, Ada, Fortran. (pl) Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Разработан Уильямом Гроуппом, и другими. MPI является наиболее распространённым стандартом интерфейса обмена данными впараллельном программировании, существуют его реализации для большого числа компьютерных платформ. Используется при разработке программ для кластеров и суперкомпьютеров. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Стандартизацией MPI занимается . В стандарте MPI описан интерфейс передачи сообщений, который должен поддерживаться как на платформе, так и в приложениях пользователя. В настоящее время существует большое количество бесплатных и коммерческих реализаций MPI. Существуют реализации для языков Фортран 77/90, Java, Си и C++. В первую очередь MPI ориентирован на системы с распределенной памятью, то есть когда затраты на передачу данных велики, в то время как OpenMP ориентирован на системы с общей памятью (многоядерные с общим кэшем). Обе технологии могут использоваться совместно, чтобы оптимально использовать в кластере многоядерные системы. (ru) Message Passing Interface (MPI) é um padrão para comunicação de dados em computação paralela. Existem várias modalidades de computação paralela, e dependendo do problema que se está tentando resolver, pode ser necessário passar informações entre os vários processadores ou nodos de um cluster, e o MPI oferece uma infraestrutura para essa tarefa. No padrão MPI, uma aplicação é constituída por uma ou mais tarefas (as quais podem ser processos, ou threads, dependendo da implementação) que se comunicam, acionando-se funções para o envio e recebimento de mensagens entre os processos. Inicialmente, na maioria das implementações, um conjunto fixo de processos é criado. Porém, esses processos podem executar diferentes programas. Por isso, o padrão MPI é algumas vezes referido como MPMD (multiple program multiple data).Elementos importantes em implementações paralelas são a comunicação de dados entre processos paralelos e o balanceamento da carga. Dado o fato do número de processos no MPI ser normalmente fixo, neste texto é enfocado o mecanismo usado para comunicação de dados entre processos. Os processos podem usar mecanismos de comunicação ponto a ponto (operações para enviar mensagens de um determinado processo a outro). Um grupo de processos pode invocar operações coletivas (collective) de comunicação para executar operações globais. O MPI é capaz de suportar comunicação assíncrona e programação modular, através de mecanismos de comunicadores (communicator) que permitem ao usuário MPI definir módulos que encapsulem estruturas de comunicação interna. O objetivo de MPI é prover um amplo padrão para escrever programas com passagem de mensagens de forma prática, portátil, eficiente e flexível. MPI não é um IEEE ou um padrão ISO, mas chega a ser um padrão industrial para o desenvolvimento de programas com troca de mensagens. (pt) 訊息傳遞介面(英語:Message Passing Interface,縮寫MPI)是一個平行計算的應用程式接口(API),常在超級電腦、電腦叢集等非共享內存環境程序設計。 (zh) MPI (англ. Message Passing Interface, Інтерфейс передачі повідомлень) — це специфікація, що була розроблена в 1993–1994 роках групою MPI Forum,і забезпечує реалізацію моделі обміну повідомленнями між процесами. Остання версія цієї специфікації: MPI-2. У моделі програмування MPI програма породжує кілька процесів, що взаємодіють між собою за допомогою виклику підпрограм прийому й передачі повідомлень. Зазвичай, при ініціалізації MPI-програми створюється фіксований набір процесів, причому (що, утім, необов'язково) кожний з них виконується на своєму процесорі. У цих процесах можуть виконуватися різні програми, тому MPI-модель іноді називають MIMD-моделлю (Multiple Instruction, Multiple Data), на відміну від SIMD моделі, де на кожному процесорі виконуються тільки однакові задачі. MPI підтримує двохточкові й глобальні, синхронні й асинхронні, блокуючі й неблокуючі типи комунікацій. Спеціальний механізм — комунікатор — ховає від програміста внутрішні комунікаційні структури. Структура комунікацій може змінюватися протягом часу життя процесу, але кількість задач має залишатися постійною (MPI-2 підтримує динамічну зміну кількості задач). Специфікація MPI забезпечує переносимість програм на рівні вихідних кодів. Підтримується робота на гетерогенних кластерах і симетричних мультипроцесорних системах. Не підтримується запуск процесів під час виконання MPI-програми. У специфікації відсутні опис паралельного вводу-виводу й налагодження програм — ці можливості можуть бути включені до складу конкретної реалізації MPI у вигляді додаткових пакетів чи утиліт. Сумісність різних реалізацій не гарантується. Важливою властивістю паралельної програми є детермінізм — програма має завжди давати однаковий результат для однакових наборів вхідних даних. Модель передачі повідомлень загалом такої властивості не має, оскільки не визначено порядок одержання повідомлень від двох процесів третім. Якщо ж один процес послідовно надсилає кілька повідомлень іншому процесу, MPI гарантує, що одержувач отримає їх саме в тому порядку, у якому вони були надіслані. Відповідальність за забезпечення детермінованого виконання програми покладається на програміста. (uk) |
dbo:wikiPageExternalLink | http://polaris.cs.uiuc.edu/~padua/cs320/mpi/tutorial.pdf http://www.daniweb.com/forums/post1428830.html%23post1428830 https://www.citutor.org/bounce.php%3Fcourse=21 https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/mpi31-report.htm http://mitpress.mit.edu/books/using-mpi-2 http://mitpress.mit.edu/books/using-mpi-second-edition http://mitpress.mit.edu/books/using-mpi-third-edition http://www-unix.mcs.anl.gov/dbpp/text/node94.html%23SECTION03500000000000000000 http://www.cs.usfca.edu/mpi/ https://www.mpi-forum.org/ https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf https://archive.org/details/usingmpiportable00grop https://books.google.com/books%3F&id=tCVkM1z2aOoC https://books.google.com/books%3F&id=zMqVdFgVnrgC https://ieeexplore.ieee.org/abstract/document/342126/ https://web.archive.org/web/20010803093058/http:/mitpress.mit.edu/book-home.tcl%3Fisbn=0262571234 https://web.archive.org/web/20080119023608/http:/www.redbooks.ibm.com/abstracts/sg245380.html http://www.netlib.org/utk/papers/mpi-book/mpi-book.html http://moss.csc.ncsu.edu/~mueller/cluster/mpi.guide.pdf |
dbo:wikiPageID | 221466 (xsd:integer) |
dbo:wikiPageLength | 50915 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1112449606 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Programming_with_Big_Data_in_R dbr:Python_(programming_language) dbr:PyMPI dbr:Application_binary_interface dbr:Julia_(programming_language) dbr:Unified_Parallel_C dbr:University_of_Tennessee dbr:De_facto dbr:De_facto_standard dbr:Internet_socket dbr:LAM/MPI dbr:MPICH2 dbr:Pthreads dbr:"Hello,_World!"_program dbr:.NET_Framework dbr:Common_Language_Infrastructure dbr:Control_Language dbr:Matrix_multiplication dbr:SPMD dbr:Object-oriented_programming dbr:Ohio_Supercomputer_Center dbr:Endianness dbr:French_Alternative_Energies_and_Atomic_Energy_Commission dbr:Global_Arrays dbr:Graph_(data_structure) dbr:Mississippi_State_University dbr:Mono_(software) dbr:Multithreading_(computer_architecture) dbr:NCUBE dbr:NEC dbr:Apache_Flink dbr:Apache_Hadoop dbr:Apache_Spark dbr:Low-level_programming_language dbr:MATLAB dbr:MIT_Press dbr:MPICH dbr:MVAPICH dbr:Caltech_Cosmic_Cube dbr:Communication dbr:Communication_protocol dbr:Computer_architecture dbr:Parallel_computing dbr:Partitioned_global_address_space dbr:Peer-to-peer dbr:Processor-in-memory dbr:Supercomputer dbr:Synchronization dbr:Synchronization_(computer_science) dbr:Syntax_(programming_languages) dbr:BSD dbr:C++ dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbr:CentOS dbr:Tony_Hey dbr:Data_parallelism dbr:Williamsburg,_Virginia dbr:Distributed_memory dbr:Distributed_shared_memory dbr:Language_binding dbr:Locality_of_reference dbr:Actor_model dbr:DARPA dbr:Data_structure_alignment dbr:European_Commission dbr:Flat_memory_model dbr:Fortran dbr:Fortran_90 dbr:PARI/GP dbr:Parallel_Virtual_Machine dbr:Transmission_Control_Protocol dbr:Multi-core_processor dbr:Process_(computing) dbr:Remote_direct_memory_access dbr:Hewlett-Packard dbr:Jack_Dongarra dbr:Java_(programming_language) dbr:Java_Native_Interface dbr:Argonne_National_Laboratory dbr:ANSI_C dbr:API dbc:Application_programming_interfaces dbc:Articles_with_example_C_code dbc:Parallel_computing dbr:Chapel_(programming_language) dbr:Charm++ dbr:Bilateral_synchronization dbr:Blocking_(computing) dbr:Sun_Microsystems dbr:Cohesion_(computer_science) dbr:Collective_operation dbr:High-level_programming_language dbr:High-performance_computing dbr:Topology_(disambiguation) dbr:Bulk_synchronous_parallel dbr:Software_industry dbr:Software_portability dbr:Data_pointer dbr:HDF5 dbr:Message-passing dbr:IBM dbr:Indiana_University dbr:Intel dbr:Microsoft dbr:National_Science_Foundation dbr:NetCDF dbr:Network_interface_controller dbr:Asynchronous_i/o dbr:OCaml dbr:Open-source dbr:OpenHMPP dbr:OpenMP dbr:Open_MPI dbr:Cartesian_tree dbr:R_(programming_language) dbr:Random-access_memory dbr:Shared_memory_(interprocess_communication) dbr:CPU dbr:X10_(programming_language) dbr:Cast_(computer_science) dbr:Memory_hierarchy dbr:Master/slave_(technology) dbr:Runtime_system dbr:Memory_segmentation dbr:Semantics dbr:Serialization dbr:Non-Uniform_Memory_Access dbr:Exascale_computing dbr:Record_locking dbr:Myrinet dbr:Shared_memory dbr:Parallel_programming dbr:Programming_language_implementation dbr:Microsoft_Messaging_Passing_Interface dbr:Symmetric_multiprocessing dbr:ScientificPython dbr:Master-slave_(technology) dbr:Boost_C++_Libraries dbr:Broadcasting_(computing) dbr:Parallel_computers dbr:Parallel_machine dbr:Language_Independent_Specification dbr:Library_routine dbr:Coupling_(computer_science) dbr:Concurrent_computer dbr:Private_industry dbr:Thread_safe dbr:OSI_Reference_Model dbr:Co-array_Fortran dbr:Multi-core_(computing) dbr:TOP-500 dbr:MPI_Forum dbr:P2P-MPI dbr:Rmpi |
dbp:date | April 2015 (en) August 2022 (en) October 2021 (en) |
dbp:part | section (en) |
dbp:reason | MPI-4.0 was approved by the MPI Forum in June 2021 (en) What is an "outstanding" operation? (en) The new features of the MPI-3 are not well described. According to the specification: "MPI-3 standard contains significant extensions to MPI functionality, including nonblocking collectives, new one-sided communication operations, and Fortran 2008 bindings." (en) |
dbp:wikiPageUsesTemplate | dbt:Anchor dbt:As_of dbt:Citation_needed dbt:Cite_book dbt:Cite_journal dbt:Clarify dbt:Div_col dbt:Div_col_end dbt:Expand_section dbt:ISBN dbt:Reflist dbt:Short_description dbt:Unreferenced_section dbt:Update dbt:Wikibooks dbt:Dmoz dbt:Parallel_computing dbt:FOLDOC |
dcterms:subject | dbc:Application_programming_interfaces dbc:Articles_with_example_C_code dbc:Parallel_computing |
gold:hypernym | dbr:System |
rdf:type | yago:WikicatNetworkProtocols yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Direction106786629 yago:Message106598915 yago:Protocol106665108 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Rule106652242 yago:Software106566077 |
rdfs:comment | La interfaz de paso de mensajes o MPI (sigla del inglés message passing interface) es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores, escritas generalmente en C, C++, Fortran y Ada. La ventaja de MPI sobre otras bibliotecas de paso de mensajes, es que los programas que utilizan la biblioteca son portables (dado que MPI ha sido implementado para casi toda arquitectura de memoria distribuida), y rápidos, (porque cada implementación de la biblioteca ha sido optimizada para el hardware en la cual se ejecuta). (es) Message Passing Interface (MPI) is a standardized and portable message-passing standard designed to function on parallel computing architectures. The MPI standard defines the syntax and semantics of library routines that are useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several open-source MPI implementations, which fostered the development of a parallel software industry, and encouraged development of portable and scalable large-scale parallel applications. (en) Message Passing Interface(メッセージ パッシング インターフェース、MPI)とは、並列コンピューティングを利用するための標準化された規格である。実装自体を指すこともある。 複数のCPUが情報をバイト列からなるメッセージとして送受信することで協調動作を行えるようにする。自由に使用できる実装としてはMPICHが有名である。他にも商用ベンダなどによる独自の実装が存在する。 ライブラリレベルでの並列化であるため、言語を問わず利用でき、プログラマが細密なチューニングを行えるというメリットがある一方、利用にあたっては明示的に手続きを記述する必要があり、ロックの対処などもプログラマ側が大きな責任をもたなければならない。 業界団体や研究者らのメンバからなる MPI Forum によって規格が明確に定義されているため、ある環境で作成したプログラムが他の環境でも動作することが期待できる。 (ja) Il Message Passing Interface (MPI) è un protocollo di comunicazione per computer. È di fatto lo standard per la comunicazione tra nodi appartenenti a un cluster di computer che eseguono un programma parallelo multi-nodo. MPI rispetto alle precedenti librerie utilizzate per il passaggio di parametri tra nodi, ha il vantaggio di essere molto portabile (MPI è stata implementata per moltissime architetture parallele) e veloce (MPI viene ottimizzato per ogni architettura).Lo standard, alla versione 3.1, definisce la sintassi delle chiamate MPI per i linguaggi C e Fortran. (it) De Message Passing Interface (MPI) is een standaard voor een softwarebibliotheek die communicatie tussen processen vereenvoudigt en zo helpt bij het programmeren van (grootschalige) parallelle computers. Er bestaan MPI-interfaces voor de programmeertalen Fortran 77 en C, de meestgebruikte talen voor het programmeren van supercomputers. (nl) Message Passing Interface (MPI, z ang., interfejs transmisji wiadomości) – protokół komunikacyjny będący standardem przesyłania komunikatów pomiędzy procesami działających na jednym lub więcej komputerach. Interfejs ten wraz z protokołem oraz semantyką specyfikuje, jak jego elementy winny się zachowywać w dowolnej implementacji. Celami MPI są wysoka jakość, skalowalność oraz przenośność. MPI jest dominującym modelem wykorzystywanym obecnie w klastrach komputerów oraz superkomputerach. Pierwsza wersja standardu ukazała się w maju 1994 r. Standard MPI implementowany jest najczęściej w postaci bibliotek, z których można korzystać w programach tworzonych w różnych językach programowania, np. C, C++, Ada, Fortran. (pl) 訊息傳遞介面(英語:Message Passing Interface,縮寫MPI)是一個平行計算的應用程式接口(API),常在超級電腦、電腦叢集等非共享內存環境程序設計。 (zh) واجهة تمرير الرسائل (بالإنجليزية: Message Passing Interface MPI) هي واجهة برمجة التطبيقات التي تسمح للأعمال (processes) بالتواصل فيما بينها من خلال تبادل رسائل. الطريقة مستعملة أيضا بين البرمجيات المتوازية مشغلة على حاسوب عملاق أو حيث الوصول لذاكرة غير محلية مكلف للغاية. يرجع الفضل في تطوير الواجهة إلى ويليام جروب وإروين لوسك وغيرهما. (ar) MPI (Message-Passing Interface, interfície de pas de missatges) és una especificació d'interfície de biblioteca en el que totes les operacions són expressades com a funcions, subrutines o mètodes enllaçats normalment als llenguatges C i Fortran. Cal destacar que aquesta especificació és la més utilitzada actualment per a la programació concurrent en entorns en la que la comunicació es fa a través de missatges i se la considera l'estàndard de referència. Els altres objectius de l'MPI es poden trobar en la següent llista: (ca) Message Passing Interface (dále jen MPI) je knihovna implementující stejnojmennou specifikaci (protokol) pro podporu paralelního řešení výpočetních problémů v počítačových clusterech. Konkrétně se jedná o rozhraní pro vývoj aplikací (API) založené na zasílání zpráv mezi jednotlivými uzly. Jedná se jak o zprávy typu point-to-point, tak o globální operace. Knihovna podporuje jak architektury se sdílenou pamětí, tak s pamětí distribuovanou (dnes častější). Z pohledu referenčního modelu ISO/OSI je protokol posazen do páté, tedy relační vrstvy, přičemž většina implementací používá jako transportní protokol TCP. (cs) Message Passing Interface (MPI) ist ein Standard, der den Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen beschreibt. Er legt dabei eine Sammlung von Operationen und ihre Semantik, also eine Programmierschnittstelle fest, aber keine Implementierung. (de) Message Passing Interface (MPI) est un outil pour le calcul scientifique à haute performance qui permet d'utiliser plusieurs ordinateurs. C'est une norme conçue en 1993-94 pour le passage de messages entre ordinateurs distants ou dans un ordinateur multiprocesseur. Elle est devenue de facto un standard de communication pour des nœuds exécutant des programmes parallèles sur des systèmes à mémoire distribuée. Elle définit une bibliothèque de fonctions, utilisable avec les langages C, C++ et Fortran. (fr) 메시지 전달 인터페이스(Message Passing Interface, MPI)는 분산 및 병렬 처리에서 정보의 교환에 대해 기술하는 표준이다.병렬 처리에서 정보를 교환할 때 필요한 기본적인 기능들과 문법, 그리고 프로그래밍 API에 대해 기술하고 있지만 구체적인 프로토콜이나 각각의 구현에 대한 것에 대해서는 기술하지 않는, 하나의 거시적인 테두리를 정해주는 표준으로 이해할 수 있다. (ko) Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Разработан Уильямом Гроуппом, и другими. MPI является наиболее распространённым стандартом интерфейса обмена данными впараллельном программировании, существуют его реализации для большого числа компьютерных платформ. Используется при разработке программ для кластеров и суперкомпьютеров. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. (ru) Message Passing Interface (MPI) é um padrão para comunicação de dados em computação paralela. Existem várias modalidades de computação paralela, e dependendo do problema que se está tentando resolver, pode ser necessário passar informações entre os vários processadores ou nodos de um cluster, e o MPI oferece uma infraestrutura para essa tarefa. (pt) MPI (англ. Message Passing Interface, Інтерфейс передачі повідомлень) — це специфікація, що була розроблена в 1993–1994 роках групою MPI Forum,і забезпечує реалізацію моделі обміну повідомленнями між процесами. Остання версія цієї специфікації: MPI-2. У моделі програмування MPI програма породжує кілька процесів, що взаємодіють між собою за допомогою виклику підпрограм прийому й передачі повідомлень. (uk) |
rdfs:label | واجهة تمرير الرسائل (ar) Message Passing Interface (ca) Message Passing Interface (cs) Message Passing Interface (de) Interfaz de Paso de Mensajes (es) Message Passing Interface (it) Message Passing Interface (fr) Message Passing Interface (ja) Message Passing Interface (en) 메시지 전달 인터페이스 (ko) Message Passing Interface (nl) Message Passing Interface (pl) Message Passing Interface (ru) Message Passing Interface (pt) 訊息傳遞介面 (zh) Message Passing Interface (uk) |
owl:sameAs | freebase:Message Passing Interface yago-res:Message Passing Interface wikidata:Message Passing Interface dbpedia-ar:Message Passing Interface dbpedia-ca:Message Passing Interface dbpedia-cs:Message Passing Interface dbpedia-de:Message Passing Interface dbpedia-es:Message Passing Interface dbpedia-fa:Message Passing Interface dbpedia-fr:Message Passing Interface dbpedia-it:Message Passing Interface dbpedia-ja:Message Passing Interface dbpedia-ko:Message Passing Interface http://lt.dbpedia.org/resource/Message_Passing_Interface dbpedia-nl:Message Passing Interface dbpedia-no:Message Passing Interface dbpedia-pl:Message Passing Interface dbpedia-pt:Message Passing Interface dbpedia-ru:Message Passing Interface dbpedia-sk:Message Passing Interface dbpedia-tr:Message Passing Interface dbpedia-uk:Message Passing Interface dbpedia-vi:Message Passing Interface dbpedia-zh:Message Passing Interface https://global.dbpedia.org/id/JyJD |
prov:wasDerivedFrom | wikipedia-en:Message_Passing_Interface?oldid=1112449606&ns=0 |
foaf:homepage | https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf |
foaf:isPrimaryTopicOf | wikipedia-en:Message_Passing_Interface |
is dbo:influencedBy of | dbr:Programming_with_Big_Data_in_R |
is dbo:knownFor of | dbr:Jack_Dongarra |
is dbo:programmingLanguage of | dbr:Tinker_(software) dbr:FHI-aims |
is dbo:wikiPageDisambiguates of | dbr:MPI |
is dbo:wikiPageRedirects of | dbr:MPI-1 dbr:MPI-2 dbr:MPI-3 dbr:MPI-IO dbr:Message_passing_interface dbr:Mpicc |
is dbo:wikiPageWikiLink of | dbr:Programming_with_Big_Data_in_R dbr:Prolog dbr:Python_SCOOP_(software) dbr:Quantum_ESPRESSO dbr:Rocks_Cluster_Distribution dbr:Sandia_National_Laboratories dbr:List_of_computer_scientists dbr:List_of_computer_standards dbr:List_of_concurrent_and_parallel_programming_languages dbr:List_of_finite_element_software_packages dbr:Message_passing dbr:Message_passing_in_computer_clusters dbr:MCAPI dbr:MD5 dbr:PyMPI dbr:OpenWebGlobe dbr:Deal.II dbr:Algorithmic_efficiency dbr:Algorithmic_skeleton dbr:Julia_(programming_language) dbr:Performance_Analyzer dbr:Roadrunner_(supercomputer) dbr:University_of_Illinois_Department_of_Computer_Science dbr:UsNIC dbr:VSim dbr:EFDC_Explorer dbr:LAM/MPI dbr:Lightweight_Kernel_Operating_System dbr:List_of_performance_analysis_tools dbr:List_of_quantum_chemistry_and_solid-state_physics_software dbr:Pencil_Code dbr:MPI-1 dbr:MPI-2 dbr:MPI-3 dbr:MPI-IO dbr:Computational_science dbr:SLEPc dbr:SU2_code dbr:Octopus_(software) dbr:Parsytec dbr:Quadrics_(company) dbr:Coarray_Fortran dbr:Elmer_FEM_solver dbr:FreeFem++ dbr:FreeMat dbr:GROMACS dbr:Gerris_(software) dbr:Global_Address_Space_Programming_Interface dbr:Global_Arrays dbr:Globus_Toolkit dbr:Model_checking dbr:NAS_Parallel_Benchmarks dbr:NEST_(software) dbr:NUPACK dbr:Apache_Hama dbr:Beowulf_cluster dbr:Linda_(coordination_language) dbr:Lis_(linear_algebra_library) dbr:MADNESS dbr:MCSim dbr:MDynaMix dbr:MFEM dbr:MPICH dbr:MUMPS_(software) dbr:MVAPICH dbr:Magerit dbr:Single_system_image dbr:Computational_magnetohydrodynamics dbr:Computer_cluster dbr:Kerrighed dbr:Parallel_computing dbr:Partitioned_global_address_space dbr:Prefix_sum dbr:Stone_Soupercomputer dbr:Summit_(supercomputer) dbr:Supercomputer dbr:Transmission-line_matrix_method dbr:MapReduce dbr:Marc_Snir dbr:Microsoft_Message_Passing_Interface dbr:BLAST_(biotechnology) dbr:Broadcast_(parallel_pattern) dbr:Tinker_(software) dbr:Tony_Hey dbr:Trilinos dbr:Two-tree_broadcast dbr:Data_parallelism dbr:Windows_Server_2003 dbr:Distributed_shared_memory dbr:GPU_cluster dbr:Gang_scheduling dbr:HBJ_model dbr:Mira_(supercomputer) dbr:ScaLAPACK dbr:Superlubricity dbr:UPCRC_Illinois dbr:Absoft_Fortran_Compilers dbr:Active_message dbr:FEniCS_Project dbr:FFTW dbr:FHI-aims dbr:Folding@home dbr:Broadcasting_(networking) dbr:PFUnit dbr:Paradiseo dbr:Parallel_Virtual_Machine dbr:Cell-based_models dbr:Center_for_the_Simulation_of_Advanced_Rockets dbr:Directory-based_coherence dbr:Discrete_dipole_approximation dbr:Fast_multipole_method dbr:Global_Environmental_Multiscale_Model dbr:Graph500 dbr:Graph_(abstract_data_type) dbr:History_of_supercomputing dbr:Multi-core_processor dbr:List_of_Folding@home_cores dbr:Windows_HPC_Server_2008 dbr:Process_(computing) dbr:RMG_(program) dbr:HP-UX dbr:HPC_Challenge_Benchmark dbr:HPX dbr:HTCondor dbr:Jack_Dongarra dbr:Cray_X1 dbr:Cray_XD1 dbr:Hyper-threading dbr:Hypre dbr:Arm_DDT dbr:Arm_MAP dbr:ADCIRC dbr:Charm++ dbr:LAMMPS dbr:LINPACK_benchmarks dbr:Bill_Gropp dbr:Bitpit dbr:Sun_Microsystems dbr:Swift_(parallel_scripting_language) dbr:TITAN2D dbr:Collective_operation dbr:Thread_(computing) dbr:Reduction_operator dbr:Automatic_parallelization_tool dbr:Bulk_synchronous_parallel dbr:CFD-DEM dbr:CFD-DEM_model dbr:CS-ROSETTA dbr:Platform_Computing dbr:Portable,_Extensible_Toolkit_for_Scientific_Computation dbr:Portals_network_programming_application_programming_interface dbr:GridRPC dbr:IBM_Blue_Gene dbr:IPython dbr:Intel_Advisor dbr:Intel_Cluster_Ready dbr:Intel_Debugger dbr:Intel_Fortran_Compiler dbr:Intel_Parallel_Studio dbr:Inter-process_communication dbr:Brutus_cluster dbr:NetCDF dbr:Neuron_(software) dbr:OnlineHPC dbr:OpenMP dbr:Open_MPI dbr:Orac_(MD_program) dbr:ROCm dbr:Loop-level_parallelism dbr:MPI dbr:Virtual_machine dbr:Simple_API_for_Grid_Applications dbr:Slurm_Workload_Manager dbr:Explicit_parallelism dbr:FLEXPART dbr:ISP_Formal_Verification_Tool dbr:Illustris_project dbr:In-situ_processing dbr:POWER7 dbr:Octeract_Engine dbr:Sun_Visualization_System dbr:Torus_fusion dbr:Event_loop dbr:NVLink dbr:Scalasca dbr:Multi-simulation_coordinator dbr:Single_program,_multiple_data dbr:Parallel_breadth-first_search dbr:Parareal dbr:Scatternet dbr:SiCortex dbr:ScientificPython dbr:SHMEM dbr:Message_passing_interface dbr:Transcriptomics_technologies dbr:Mpicc |
is dbp:platform of | dbr:Charm++ |
is dbp:programmingLanguage of | dbr:FHI-aims |
is dbp:standard of | dbr:MPICH |
is foaf:primaryTopic of | wikipedia-en:Message_Passing_Interface |