<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Tech Decoded Dev</provider_name><provider_url>https://wp.ironhorse.dev/tech-decoded</provider_url><author_name>Kenny Crippen</author_name><author_url>https://wp.ironhorse.dev/tech-decoded/author/kenny/</author_url><title>The Present and Future of the OpenMP* API Specification</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="f9SdpzVpC2"&gt;&lt;a href="https://wp.ironhorse.dev/tech-decoded/resources/present-future-openmp-api-specification/"&gt;The Present and Future of the OpenMP* API Specification&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://wp.ironhorse.dev/tech-decoded/resources/present-future-openmp-api-specification/embed/#?secret=f9SdpzVpC2" width="600" height="338" title="&#x201C;The Present and Future of the OpenMP* API Specification&#x201D; &#x2014; Tech Decoded Dev" data-secret="f9SdpzVpC2" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://wp.ironhorse.dev/tech-decoded/wp-content/uploads/sites/7/2018/04/TD-CodeMod-Resources-The-Present-and-Future-of-the-OpenMP.jpg</thumbnail_url><thumbnail_width>768</thumbnail_width><thumbnail_height>432</thumbnail_height><description>There are two decades of history associated with the OpenMP* API and, since its inauguration, OpenMP features have been added to keep up with developments in hardware and software to ensure that you can use it to program the hardware that you have.</description></oembed>
