<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Portals_network_programming_application_programming_interface</id>
	<title>Portals network programming application programming interface - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Portals_network_programming_application_programming_interface"/>
	<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Portals_network_programming_application_programming_interface&amp;action=history"/>
	<updated>2026-04-22T10:35:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://70.231.62.181/index.php?title=Portals_network_programming_application_programming_interface&amp;diff=3519937&amp;oldid=prev</id>
		<title>imported&gt;LucasBrown: WP:SDCONTENT compliance</title>
		<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Portals_network_programming_application_programming_interface&amp;diff=3519937&amp;oldid=prev"/>
		<updated>2025-09-22T10:30:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=WP:SDCONTENT&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:SDCONTENT (page does not exist)&quot;&gt;WP:SDCONTENT&lt;/a&gt; compliance&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Software for high-performance networking}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = Portals&lt;br /&gt;
| title                  = &lt;br /&gt;
| logo                   = &amp;lt;!-- [[File: ]] --&amp;gt;&lt;br /&gt;
| screenshot             = &amp;lt;!-- [[File: ]] --&amp;gt;&lt;br /&gt;
| caption                = &lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = &lt;br /&gt;
| developer              = [[Sandia National Laboratories]], [[University of New Mexico]]&lt;br /&gt;
| released               = &amp;lt;!-- {{Start date|YYYY|MM|DD|df=yes/no}} --&amp;gt;&lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = 4.0.2{{When|date=October 2014}}&lt;br /&gt;
| latest release date    = &amp;lt;!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --&amp;gt;&lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &amp;lt;!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --&amp;gt;&lt;br /&gt;
| frequently updated     = &amp;lt;!-- DO NOT include this parameter unless you know what it does --&amp;gt;&lt;br /&gt;
| programming language   = &lt;br /&gt;
| operating system       = &lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = &lt;br /&gt;
| language               = &lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = Network [[Application programming interface|API]]&lt;br /&gt;
| license                = &lt;br /&gt;
| website                = {{URL|http://www.sandia.gov/Portals}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Portals&amp;#039;&amp;#039;&amp;#039; is a low-level network [[Application programming interface|API]] for high-performance networking on [[high-performance computing]] systems developed by [[Sandia National Laboratories]] and the [[University of New Mexico]].  Portals is currently the lowest-level network programming interface on the commercially successful XT line of supercomputers from [[Cray]].&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Portals is based on the concept of elementary building blocks that can be combined to support a wide variety of upper-level network transport semantics. Portals provides one-sided data movement operations, but unlike other one-sided programming interfaces, the target of a remote operation is not a [[virtual address]].  Instead, the ultimate destination in memory of an incoming message is determined at the receiver by comparing contents of the message header with the contents of structures at the destination. This flexibility allows for efficient implementations of both one-sided and two-sided communications.  In particular, Portals is aimed at providing the fundamental operations necessary to support a high-performance and scalable implementation of the [[Message Passing Interface]] (MPI) standard.&amp;lt;ref name=brightwell-1996 /&amp;gt; It was also used as the initial network transport layer for the [[Lustre (file system)|Lustre]] file system.&lt;br /&gt;
&lt;br /&gt;
== Early years ==&lt;br /&gt;
Portals began in the early 1990s as an extension to the [[NCUBE|nX]] message passing system used in the [[SUNMOS]] and [[PUMA Cluster Super Computer|Puma]] operating system.  It was first implemented for the [[Intel Paragon]] at Sandia, and later ported to the [[Intel Teraflops|Intel TeraFLOPS]] machine named [[ASCI Red]].&amp;lt;ref name=brightwell-1996&amp;gt;{{cite conference&lt;br /&gt;
| citeseerx = 10.1.1.54.3830&lt;br /&gt;
| title = Design and Implementation of MPI on Puma Portals&lt;br /&gt;
| author = Ron Brightwell| date = June 1996&lt;br /&gt;
| conference = MPI Developer&amp;#039;s Conference, 1996. Proceedings., Second&lt;br /&gt;
|display-authors=etal}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
There were four building blocks in the first version of Portals: the single block, the dynamic block, the independent block and the combined block.  All incoming messages would first pass through a match-list that allowed individual portals to respond to specific groups, ranks, and a set of user specified match-bits.&amp;lt;ref name=brightwell-1996 /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Portals 3 ==&lt;br /&gt;
The Portals concept continued to evolve over successive generations of lightweight kernels and massively parallel systems. In 1999, an operational programming interface was given to Portals so that it could be implemented for intelligent or programmable network interfaces outside of a lightweight kernel environment.&amp;lt;ref name=&amp;quot;portals3.0&amp;quot;&amp;gt;{{cite report&lt;br /&gt;
 | author         = Ron Brightwell &amp;lt;!-- etal --&amp;gt;&lt;br /&gt;
 | title          = The Portals 3.0 Message Passing Interface Revision 1.0&lt;br /&gt;
 | institution    = Sandia National Laboratories&lt;br /&gt;
 | location       = Albuquerque, NM&lt;br /&gt;
 | date           = December 1999&lt;br /&gt;
 | url            = https://www.sandia.gov/app/uploads/sites/144/2021/11/portals30.pdf&lt;br /&gt;
 | format         = PDF&lt;br /&gt;
 | display-authors= etal&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;  This standard was designed for systems where the work required to prepare, transmit, and deliver messages is longer than the round-trip to the Portals data structures. For example, in modern systems, this work is dominated by the round-trip through the IO bus to the network interface. The standard has been revised since the initial release to make it more suited for modern high performance, massively parallel computers.&amp;lt;ref name=&amp;quot;portals3.3&amp;quot;&amp;gt;{{cite report&lt;br /&gt;
 | author         = Rolf Riesen &amp;lt;!-- etal --&amp;gt;&lt;br /&gt;
 | title          = The Portals 3.3 Message Passing Interface Document Revision 2.1&lt;br /&gt;
 | institution    = Sandia National Laboratories&lt;br /&gt;
 | location       = Albuquerque, NM&lt;br /&gt;
 | date           = April 2006&lt;br /&gt;
 | url            = https://www.sandia.gov/app/uploads/sites/144/2021/11/portals33.pdf&lt;br /&gt;
 | format         = PDF&lt;br /&gt;
 | archive-url    = https://web.archive.org/web/20110605103014/http://www.cs.sandia.gov/Portals/publications/portals33.pdf&lt;br /&gt;
 | archive-date   = 2011-06-05&lt;br /&gt;
 | url-status     = dead&lt;br /&gt;
 | access-date    = 2009-10-02&lt;br /&gt;
 | display-authors= etal&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
The MPI library was ported from the [[retronym]]ed Portals 2 to the new Portals 3.0.&amp;lt;ref name=brightwell-2002&amp;gt;{{cite book&lt;br /&gt;
| title = Design and Implementation of MPI on Portals 3.0&lt;br /&gt;
| series = Lecture Notes in Computer Science&lt;br /&gt;
| publisher = Springer&lt;br /&gt;
| year = 2002&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Portals 3 specification has been implemented several times, first on [[ASCI Red]], then on [[CPlant]] over [[Myrinet]],&amp;lt;ref name=pundit-2001&amp;gt;{{cite journal&lt;br /&gt;
| url = http://www.ieeetcsc.org/node/37/634&lt;br /&gt;
| title = CPlant: The Largest Linux Cluster&lt;br /&gt;
| author = Neil Pundit&lt;br /&gt;
| publisher = IEEE Technical Committee on Scalable Computing&lt;br /&gt;
| accessdate = 2009-10-02&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; [[Linux]] and the [[Cray XT3|Cray XT]] family.&amp;lt;ref name=&amp;quot;pedretti-2005&amp;quot;&amp;gt;{{cite conference&lt;br /&gt;
 | author         = Kevin Pedretti &amp;lt;!-- etal --&amp;gt;&lt;br /&gt;
 | title          = Implementation and Performance of Portals 3.3 on the Cray XT3&lt;br /&gt;
 | conference     = IEEE International Conference on Cluster Computing&lt;br /&gt;
 | location       = Boston, MA&lt;br /&gt;
 | date           = 2005-09-27&lt;br /&gt;
 | publisher      = IEEE Computer Society&lt;br /&gt;
 | pages          = 1–8&lt;br /&gt;
 | display-authors= etal&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Portals 4 ==&lt;br /&gt;
In light of emerging [[partitioned global address space]] (PGAS) languages, several new features have been added to the Portals API as part of Portals 4.  Portals 4 also made several changes to improve the interaction between the processor and network interface (NIC) for implementations that provide offload.  Finally, an option to support a form of flow-control was added to Portals 4.&amp;lt;ref name=&amp;quot;portals4.0&amp;quot;&amp;gt;{{cite report&lt;br /&gt;
 | author         = Ryan Grant &amp;lt;!-- etal --&amp;gt;&lt;br /&gt;
 | title          = The Portals 4.0.2 Message Passing Interface&lt;br /&gt;
 | institution    = Sandia National Laboratories&lt;br /&gt;
 | location       = Albuquerque, NM&lt;br /&gt;
 | date           = 2014-10-01&lt;br /&gt;
 | url            = https://www.sandia.gov/app/uploads/sites/144/2021/11/portals402.pdf&lt;br /&gt;
 | format         = PDF&lt;br /&gt;
 | access-date    = 2016-03-25&lt;br /&gt;
 | display-authors= etal&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Portals 4 is the low-level networking API for the Bull-Atos BXI NIC.&amp;lt;ref&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Derradji | first1 = S.&lt;br /&gt;
 | last2 = Palfer-Sollier | first2 = T.&lt;br /&gt;
 | last3 = Panziera | first3 = J.P.&lt;br /&gt;
 | last4 = Poudes | first4 = A.&lt;br /&gt;
 | last5 = Wellenreiter | first5 = F.&lt;br /&gt;
 | title = The BXI Interconnect Architecture&lt;br /&gt;
 | book-title = Symposium on Hot Interconnects&lt;br /&gt;
 | publisher = IEEE&lt;br /&gt;
 | date = August 26, 2015&lt;br /&gt;
 | doi = 10.1109/HOTI.2015.15&lt;br /&gt;
 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.cs.sandia.gov/Portals Portals Home Page]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Application programming interfaces]]&lt;br /&gt;
[[Category:Parallel computing]]&lt;/div&gt;</summary>
		<author><name>imported&gt;LucasBrown</name></author>
	</entry>
</feed>