<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=OpenMP</id>
	<title>OpenMP - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=OpenMP"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;action=history"/>
	<updated>2026-08-17T06:05:12Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848531&amp;oldid=prev</id>
		<title>Kenrios en 14:31 24 ene 2021</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848531&amp;oldid=prev"/>
		<updated>2021-01-24T14:31:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 14:31 24 ene 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Línea 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una [[API|interfaz de programación de aplicaciones]] (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto [[Operador de preproceso|directivas de compilador]], rutinas de biblioteca y [[variables de entorno]] que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una [[API|interfaz de programación de aplicaciones]] (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto [[Operador de preproceso|directivas de compilador]], rutinas de biblioteca y [[variables de entorno]] que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los [[Cluster (computadoras)|clústers de computadoras]] puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los [[Cluster (computadoras)|clústers de computadoras]] puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot; &gt;Línea 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;shared(variable1,...,variablen)&amp;lt;/code&amp;gt;: Define que las variables o datos pueden ser visibles y accesibles por todos los hilos en ejecución. Por defecto todas las variables que se encuentran en la región paralela son compartidas excepto el contador de las iteraciones.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;shared(variable1,...,variablen)&amp;lt;/code&amp;gt;: Define que las variables o datos pueden ser visibles y accesibles por todos los hilos en ejecución. Por defecto todas las variables que se encuentran en la región paralela son compartidas excepto el contador de las iteraciones.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;private(variable1,...,variablen)&amp;lt;/code&amp;gt;: Las variables o datos declarados en la claúsula son almacenados en el espacio local del hilo (comúnmente en la pila), lo que quiere decir que el hilo los úsara como variable temporal y por tanto solo él tendrá acceso al mismo. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;private(variable1,...,variablen)&amp;lt;/code&amp;gt;: Las variables o datos declarados en la claúsula son almacenados en el espacio local del hilo (comúnmente en la pila), lo que quiere decir que el hilo los úsara como variable temporal y por tanto solo él tendrá acceso al mismo. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Fuentes ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Fuentes ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Listaref}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Listaref}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Informática]][[Category:Programación]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Informática]][[Category:Programación]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-3848513:rev-3848531 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848513&amp;oldid=prev</id>
		<title>Kenrios en 13:16 24 ene 2021</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848513&amp;oldid=prev"/>
		<updated>2021-01-24T13:16:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 13:16 24 ene 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Línea 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una [[API|interfaz de programación de aplicaciones]] (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y [[variables de entorno]] que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una [[API|interfaz de programación de aplicaciones]] (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Operador de preproceso|&lt;/ins&gt;directivas de compilador&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;, rutinas de biblioteca y [[variables de entorno]] que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los [[Cluster (computadoras)|clústers de computadoras]] puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los [[Cluster (computadoras)|clústers de computadoras]] puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-3848512:rev-3848513 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848512&amp;oldid=prev</id>
		<title>Kenrios: /* Modelo de ejecución */</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848512&amp;oldid=prev"/>
		<updated>2021-01-24T13:11:53Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Modelo de ejecución&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 13:11 24 ene 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot; &gt;Línea 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los [[Cluster (computadoras)|clústers de computadoras]] puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los [[Cluster (computadoras)|clústers de computadoras]] puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Se entiende como modelo de ejecución fork/join una técnica heredada de sistemas Unix en la que un proceso se divide en '''k''' hilos menores (fork), luego cada uno de estos hilos arroja ciertos &amp;quot;resultados&amp;quot; los cuales son unificados en uno sólo (join). &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Se entiende como modelo de ejecución fork/join una técnica heredada de sistemas &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Unix&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;en la que un proceso se divide en '''k''' hilos menores (fork), luego cada uno de estos hilos arroja ciertos &amp;quot;resultados&amp;quot; los cuales son unificados en uno sólo (join). &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Cuando se incluye una directiva de compilador &amp;lt;code&amp;gt;#openmp&amp;lt;/code&amp;gt; esto implica que en el bloque de código se aplicarán una serie de mecanismos de sincronización. Esto quiere decir que automáticamente el código sera marcado como paralelo y, en dependencia de la configuración de la directiva, se lanzarán una serie de hilos y al final habrá una barrera en la que un hilo debe esperar a que el resto termine para continuar la ejecución (a no ser que se específique con la directiva '''nowait''', en cuyo caso los hilos continuarán)&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Cuando se incluye una directiva de compilador &amp;lt;code&amp;gt;#openmp&amp;lt;/code&amp;gt; esto implica que en el bloque de código se aplicarán una serie de mecanismos de sincronización. Esto quiere decir que automáticamente el código sera marcado como paralelo y, en dependencia de la configuración de la directiva, se lanzarán una serie de hilos y al final habrá una barrera en la que un hilo debe esperar a que el resto termine para continuar la ejecución (a no ser que se específique con la directiva '''nowait''', en cuyo caso los hilos continuarán)&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Ahora bien, el modelo además incluye mecanismos de paralelismo de &amp;quot;tareas&amp;quot;. Recordemos que ningún proceso puede ejecutarse si todas sus dependencias no estan satisfechas por lo que en estos casos OpenMP implementa un mecanismo en el que los procesos no se ejecutan hasta que estos estén disponibles. A este estilo de paralelismo se le llama '''asíncrono''' ya que no es estrictamente necesario que se implementen barreras en la que los hilos tengan que esperar hasta que el resto termine la ejecución del bloque de código. Si se usan procesos con dependencias se implementa un grafo de dependencia en el que se puede definir el orden de ejecución de los procesos que poseen esta necesidad.&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Ahora bien, el modelo además incluye mecanismos de paralelismo de &amp;quot;tareas&amp;quot;. Recordemos que ningún proceso puede ejecutarse si todas sus dependencias no estan satisfechas por lo que en estos casos OpenMP implementa un mecanismo en el que los procesos no se ejecutan hasta que estos estén disponibles. A este estilo de paralelismo se le llama '''asíncrono''' ya que no es estrictamente necesario que se implementen barreras en la que los hilos tengan que esperar hasta que el resto termine la ejecución del bloque de código. Si se usan procesos con dependencias se implementa un grafo de dependencia en el que se puede definir el orden de ejecución de los procesos que poseen esta necesidad.&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sintáxis básica ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sintáxis básica ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La sintáxis básica de una directiva de OpenMP para [[C (lenguaje de programación)|C]] y [[C++]] es la siguiente:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La sintáxis básica de una directiva de OpenMP para [[C (lenguaje de programación)|C]] y [[C++]] es la siguiente:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848511&amp;oldid=prev</id>
		<title>Kenrios en 13:10 24 ene 2021</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848511&amp;oldid=prev"/>
		<updated>2021-01-24T13:10:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 13:10 24 ene 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot; &gt;Línea 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una [[API|interfaz de programación de aplicaciones]] (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y [[variables de entorno]] que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una [[API|interfaz de programación de aplicaciones]] (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y [[variables de entorno]] que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los clústers de computadoras puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Cluster (computadoras)|&lt;/ins&gt;clústers de computadoras&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Se entiende como modelo de ejecución fork/join una técnica heredada de sistemas Unix en la que un proceso se divide en '''k''' hilos menores (fork), luego cada uno de estos hilos arroja ciertos &amp;quot;resultados&amp;quot; los cuales son unificados en uno sólo (join). &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Se entiende como modelo de ejecución fork/join una técnica heredada de sistemas Unix en la que un proceso se divide en '''k''' hilos menores (fork), luego cada uno de estos hilos arroja ciertos &amp;quot;resultados&amp;quot; los cuales son unificados en uno sólo (join). &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848506&amp;oldid=prev</id>
		<title>Kenrios en 13:06 24 ene 2021</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848506&amp;oldid=prev"/>
		<updated>2021-01-24T13:06:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 13:06 24 ene 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Línea 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una interfaz de programación de aplicaciones (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y variables de entorno que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[API|&lt;/ins&gt;interfaz de programación de aplicaciones&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;(API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como [[Windows|Microsoft Windows]] o [[Linux]]. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;variables de entorno&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los clústers de computadoras puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los clústers de computadoras puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848505&amp;oldid=prev</id>
		<title>Kenrios en 12:58 24 ene 2021</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3848505&amp;oldid=prev"/>
		<updated>2021-01-24T12:58:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 12:58 24 ene 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Línea 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una interfaz de programación de aplicaciones (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como Microsoft Windows o Linux. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y variables de entorno que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;'''OpenMP''' es una interfaz de programación de aplicaciones (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Windows|&lt;/ins&gt;Microsoft Windows&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;o &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;Linux&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y variables de entorno que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los clústers de computadoras puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los clústers de computadoras puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modelo de ejecución ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3847613&amp;oldid=prev</id>
		<title>Kenrios: Página creada con «{{Definición |nombre=OpenMP |imagen=openmp.png |tamaño=200px |concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación }…»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=OpenMP&amp;diff=3847613&amp;oldid=prev"/>
		<updated>2021-01-22T22:10:00Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «{{Definición |nombre=OpenMP |imagen=openmp.png |tamaño=200px |concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación }…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Definición&lt;br /&gt;
|nombre=OpenMP&lt;br /&gt;
|imagen=openmp.png&lt;br /&gt;
|tamaño=200px&lt;br /&gt;
|concepto=OpenMP es una API diseñada para explotar el paralelismo en diferentes lenguajes de programación&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;br&amp;gt;'''OpenMP''' es una interfaz de programación de aplicaciones (API por sus siglas en inglés) para la programación paralela en diferentes plataformas. Esta permite añadir procesamiento concurrente a programas codificados en [[C (lenguaje de programación)|C]], [[C++]] y [[Fortran]] sobre la base del modelo de ejecución fork/join. Esta API esta disponible en múltiples plataformas como Microsoft Windows o Linux. Consiste en un conjunto directivas de compilador, rutinas de biblioteca y variables de entorno que permiten al programador controlar el comportamiento de un programa en tiempo de ejecución. &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Su diseño, implementación y soporte está dirigido por un conjunto de fabricantes de software y hardware, siendo portable y escalable es una buena alternativa para la programación paralela en plataformas que varían desde una computador de escritorio (PC) hasta las supercomputadoras. Un sistema híbrido como los clústers de computadoras puede programarse usando OpenMP y MPI(Interfaz de Paso de Mensaje) ya que esta arquitectura posee memoria compartida y distribuida, o también se podría usar una extensión de OpenMP para la programación sobre memoria distribuida.&amp;lt;ref&amp;gt;CHANDRA, Rohit, et al. Parallel programming in OpenMP. Morgan kaufmann, 2001.&amp;lt;/ref&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
== Modelo de ejecución ==&lt;br /&gt;
&amp;lt;br&amp;gt;Se entiende como modelo de ejecución fork/join una técnica heredada de sistemas Unix en la que un proceso se divide en '''k''' hilos menores (fork), luego cada uno de estos hilos arroja ciertos &amp;quot;resultados&amp;quot; los cuales son unificados en uno sólo (join). &amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Cuando se incluye una directiva de compilador &amp;lt;code&amp;gt;#openmp&amp;lt;/code&amp;gt; esto implica que en el bloque de código se aplicarán una serie de mecanismos de sincronización. Esto quiere decir que automáticamente el código sera marcado como paralelo y, en dependencia de la configuración de la directiva, se lanzarán una serie de hilos y al final habrá una barrera en la que un hilo debe esperar a que el resto termine para continuar la ejecución (a no ser que se específique con la directiva '''nowait''', en cuyo caso los hilos continuarán)&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Ahora bien, el modelo además incluye mecanismos de paralelismo de &amp;quot;tareas&amp;quot;. Recordemos que ningún proceso puede ejecutarse si todas sus dependencias no estan satisfechas por lo que en estos casos OpenMP implementa un mecanismo en el que los procesos no se ejecutan hasta que estos estén disponibles. A este estilo de paralelismo se le llama '''asíncrono''' ya que no es estrictamente necesario que se implementen barreras en la que los hilos tengan que esperar hasta que el resto termine la ejecución del bloque de código. Si se usan procesos con dependencias se implementa un grafo de dependencia en el que se puede definir el orden de ejecución de los procesos que poseen esta necesidad.&amp;lt;/br&amp;gt;&lt;br /&gt;
== Sintáxis básica ==&lt;br /&gt;
La sintáxis básica de una directiva de OpenMP para [[C (lenguaje de programación)|C]] y [[C++]] es la siguiente:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
# pragma omp &amp;lt;directiva&amp;gt; [cláusula [ , ...] ...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
para [[Fortran]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fortran&amp;quot;&amp;gt;&lt;br /&gt;
!$OMP  PARALLEL &amp;lt;directiva&amp;gt; [cláusulas]&lt;br /&gt;
    [ bloque de código ]&lt;br /&gt;
!$OMP END &amp;lt;directiva&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación se verán algunas de las directivas que pueden ser usadas en OpenMP&lt;br /&gt;
&amp;lt;ref&amp;gt;[https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-1.pdf &amp;quot;OpenMP 5.1 Specifications&amp;quot;]&amp;lt;/ref&amp;gt;&lt;br /&gt;
==Directivas==&lt;br /&gt;
* &amp;lt;code&amp;gt;parallel&amp;lt;/code&amp;gt;: Esta directiva indica que el código en cuestión puede ser ejecutado por varios hilos. Cada uno de los hilos se dividen en tareas implícitas que le son asignadas. Este es un ejemplo sencillo de un código de bucle &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; ejecutado con esta directiva&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#pragma omp parallel for&lt;br /&gt;
    for (i=1; i&amp;lt;n; i++)&lt;br /&gt;
        b[i] = (a[i] + a[i-1]) / 2.0;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;: Esta directiva indica que el bucle &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; subsiguiente ejecuta una o más partes de iteracciones divididas entre los hilos. Un hilo ejecuta una parte de las iteraciones del bucle (convirtiéndose en una tarea interna explícita) y la cantidad de hilos en los que se divide la ejecución es determinado por la configuración de esta directiva.&lt;br /&gt;
* &amp;lt;code&amp;gt;section&amp;lt;/code&amp;gt; y '''sections''': Esta directiva indica que varias secciones de código pueden ejecutarse en paralelo pero por un único hilo.&lt;br /&gt;
* &amp;lt;code&amp;gt;single&amp;lt;/code&amp;gt;:Esta directiva indica que el bloque de código solo puede ejecutarse por un único hilo que no tiene porque ser el hilo maestro.&lt;br /&gt;
* &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;: Esta directiva define que el código solo puede ser ejecutado por el hilo maestro.&lt;br /&gt;
* &amp;lt;code&amp;gt;critical&amp;lt;/code&amp;gt;:Interesante directiva que define que el bloque de código subsiguiente es una zona crítica y que por consiguiente solo puede estarla ejecutando un solo hilo y los otros que así lo deseen deben esperar hasta que se cumplan las condiciones de carrera.&lt;br /&gt;
&lt;br /&gt;
A continuación veremos algunas claúsulas usadas en la declaración de la directiva.&lt;br /&gt;
&lt;br /&gt;
== Claúsulas ==&lt;br /&gt;
* &amp;lt;code&amp;gt;shared(variable1,...,variablen)&amp;lt;/code&amp;gt;: Define que las variables o datos pueden ser visibles y accesibles por todos los hilos en ejecución. Por defecto todas las variables que se encuentran en la región paralela son compartidas excepto el contador de las iteraciones.&lt;br /&gt;
* &amp;lt;code&amp;gt;private(variable1,...,variablen)&amp;lt;/code&amp;gt;: Las variables o datos declarados en la claúsula son almacenados en el espacio local del hilo (comúnmente en la pila), lo que quiere decir que el hilo los úsara como variable temporal y por tanto solo él tendrá acceso al mismo. &lt;br /&gt;
&lt;br /&gt;
== Fuentes ==&lt;br /&gt;
{{Listaref}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Informática]][[Category:Programación]]&lt;/div&gt;</summary>
		<author><name>Kenrios</name></author>
		
	</entry>
</feed>