
{"id":120,"date":"2015-02-06T22:35:30","date_gmt":"2015-02-06T20:35:30","guid":{"rendered":"http:\/\/paragroup.cs.uoi.gr\/wptest\/wordpress\/?page_id=120"},"modified":"2025-10-22T12:11:21","modified_gmt":"2025-10-22T09:11:21","slug":"documentation","status":"publish","type":"page","link":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/","title":{"rendered":"OMPi @ ppg documentation"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-493 size-full\" style=\"margin-bottom: 1em;\" src=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-content\/uploads\/2015\/02\/ompi-64-o.png\" width=\"160\" height=\"64\" \/>OMPi is a lightweight, open source <a href=\"http:\/\/www.openmp.org\/\" target=\"_blank\">OpenMP<\/a> compiler and runtime system for C; it takes C source code with OpenMP #pragmas and produces transformed multithreaded C code, ready to be compiled by the native compiler of the system.<\/p>\n<p>If you want to cite OMPi in your work, please use the following publication:<\/p>\n<p style=\"margin-left: 2em;\">V.V. Dimakopoulos, E. Leontiadis and G. Tzoumas, &#8220;A portable C compiler for OpenMP V.2.0&#8221;, in <i>Proc. EWOMP 2003, 5th European Workshop on OpenMP<\/i>, Aachen, Germany, Sept. 2003, pp. 5&#8211;11<\/p>\n<p>You can also view all <a title=\"ompi-related publications\" href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/publications\/\">related publications<\/a>.<\/p>\n<h3>Documentation pages<\/h3>\n<ul>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-ppg-basic-installation-usage\/\">Basic installation &amp; usage<\/a><\/li>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-offloading-to-cuda-gpus\/\">Offloading to CUDA GPUs<\/a><\/li>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-offloading-to-opencl-gpus\/\">Offloading to OpenCL GPUs<\/a><\/li>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-offloading-to-vulkan-gpus\/\">Offloading to Vulkan GPUs<\/a><\/li>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-remote-offloading\/\">OMPi on clusters &#8212; offloading code to remote nodes (CPUs and devices)<\/a><\/li>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-on-the-raspberry-pi-4-5-boards\">OMPi on the Raspberry Pi 4\/5<\/a><\/li>\n<li><a href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/software\/ompi\/documentation\/ompi-on-the-jetson-nano-boards\/\">OMPi on the Jetson Nano<\/a><\/li>\n<li>OpenMP implementation-defined behaviors for the latest version of OMPi (<a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/3.0.0\/ompi_implementation_specifics.html\" target=\"_blank\">HTML<\/a>, <a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/3.0.0\/ompi_implementation_specifics.pdf\" target=\"_blank\">PDF<\/a>).<\/li>\n<\/ul>\n<h3><a id=\"internals\"><\/a>Internals (outdated)<\/h3>\n<p>Below you can find documentation about the internal workings of OMPi. The guides are suitable for developers that want to modify OMPi in some way, e.g. its source-to-source translator and\/or its runtime libraries.<\/p>\n<p>Please notice that the documentation below is not quite up-to-date but should nevertheless be useful. You may\u00a0<a title=\"contact @ ppg\" href=\"https:\/\/paragroup.cse.uoi.gr\/wpsite\/contact\/\">contact the team<\/a> for further inquiries.<\/p>\n<ul style=\"list-style-type: none;\">\n<li>\u00bb Information about the source-to-source translator of OMPi:\n<ul style=\"list-style-type: none;\">\n<li><a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/docs\/compiler\/ompicompiler.html\" target=\"_blank\">HTML<\/a>, <a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/docs\/compiler\/ompicompiler.pdf\" target=\"_blank\">PDF<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\u00bb Threading libraries in OMPi &amp; how to write your own threading libraries:\n<ul style=\"list-style-type: none;\">\n<li><a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/docs\/eelibs\/threads.html\" target=\"_blank\">HTML<\/a>, <a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/docs\/eelibs\/threads.pdf\" target=\"_blank\">PDF<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\u00bb How OMPi runtime library handles worksharing regions:\n<ul style=\"list-style-type: none;\">\n<li><a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/docs\/workshare\/workshares.html\" target=\"_blank\">HTML<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\u00bb Details on the parts of the support for the OpenMP <code>for<\/code>-directive:\n<ul style=\"list-style-type: none;\">\n<li><a href=\"https:\/\/www.cse.uoi.gr\/~paragroup\/ompi\/docs\/workshare\/ompifor.html\" target=\"_blank\">HTML<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>OMPi is a lightweight, open source OpenMP compiler and runtime system for C; it takes C source code with OpenMP #pragmas and produces transformed multithreaded C code, ready to be compiled by the native compiler of the system. If you want to cite OMPi in your work, please use the following publication: V.V. Dimakopoulos, E. [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":118,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-120","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/pages\/120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":78,"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/pages\/120\/revisions"}],"predecessor-version":[{"id":1416,"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/pages\/120\/revisions\/1416"}],"up":[{"embeddable":true,"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/pages\/118"}],"wp:attachment":[{"href":"https:\/\/paragroup.cse.uoi.gr\/wpsite\/wp-json\/wp\/v2\/media?parent=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}