CINXE.COM
High Performance Computing: What History Can Teach Us About the Present and Future
<!DOCTYPE html> <html id="PageBody" lang="en-US"> <head id="Head1"><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta charset="utf-8" /> <!--Disabling responsiveness until we optimize.--> <!--<meta name="viewport" content="width=1200" /> --> <meta name="robots" content="index,follow" /><meta name="viewport" content="width=device-width, initial-scale=1" /> <script type="text/javascript"> var ctx = "/" if (ctx == "/") { ctx = ""; } var doc = document.documentElement; doc.setAttribute('data-useragent', navigator.userAgent); </script> <link href="/Skins/Kendo/kendo-css?v=0fP4kA5Nr4q4JHkoTNu1OOr6i681e3jxafNueoAtKAc1" rel="stylesheet"/> <link href="/Skins/Telerik/telerik-css?v=C_dckLOBUg_8S-OjEQJT26rBiKVHtr2RKoM7Vo77FRw1" rel="stylesheet"/> <link href="/Skins/Telerik/Bootstrap_3/telerikskin-css?v=G9ucxSrkwwaU16NyxpF0znQdsqR_syBDWluD6_cdZcY1" rel="stylesheet"/> <link href="/Skins/font-awesome/css/font-awesome.min.css" rel="stylesheet"/> <link rel="stylesheet" href="/Skins/BE595264052F44E4AFF11048E9BB69B8/css/bootstrap.min.css" /> <link rel="icon" href="/Skins/BE595264052F44E4AFF11048E9BB69B8/images/favicon.ico" type="image/x-icon" /> <script src="/bundle/js?v=pWxG99UeDQjrAb1obIi_l5a2ElyMUjEEeEac8L2uNJ81"></script> <title> High Performance Computing: What History Can Teach Us About the Present and Future </title><meta name="description" content="This course, in partnership with IEEE Future Directions, is based on a very popular lecture that vividly illustrates a profound fact in the High Performance Computing ecosystem. The architecture we" /><meta name="keywords" content="high performance computing history, hpc history, history of hpc, history of high performance computing, supercomputers, super computer, frontier supercomputer, fugaku supercomputer, cray 1, ray" /></head> <body class="canvas"> <form method="post" action="./contentdetails.aspx?id=274C055DAF4142D58EA8DBD67F608B05" id="Form1"> <div class="aspNetHidden"> <input type="hidden" name="RadScriptManager1_TSM" id="RadScriptManager1_TSM" value="" /> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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BwUKU2l0ZWZpbml0eR8IaGRkAhIPDxYGHwYFBlN1bnNldB8HBQZTdW5zZXQfCGhkZAITDw8WBh8GBQdUZWxlcmlrHwcFB1RlbGVyaWsfCGhkZAIUDw8WBh8GBQtUcmFuc3BhcmVudB8HBQtUcmFuc3BhcmVudB8IaGRkAhUPDxYGHwYFBVZpc3RhHwcFBVZpc3RhHwhoZGQCFg8PFgYfBgUFV2ViMjAfBwUFV2ViMjAfCGhkZAIXDw8WBh8GBQdXZWJCbHVlHwcFB1dlYkJsdWUfCGhkZAIYDw8WBh8GBQhXaW5kb3dzNx8HBQhXaW5kb3dzNx8IaGRkAgUPZBYEAgIPZBYMAgEPZBYCZg88KwAKAQAPFgQfA2ceC18hSXRlbUNvdW50AgFkFgJmD2QWBmYPDxYCHwVoZGQCAQ9kFgJmD2QWFgIBDxYCHwYFUkhpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nOiBXaGF0IEhpc3RvcnkgQ2FuIFRlYWNoIFVzIEFib3V0IHRoZSBQcmVzZW50IGFuZCBGdXR1cmVkAgMPFgIfBgUGT25saW5lZAIFDxYEHwYFCVNDT1JNIDEuMh8FaGQCBw8WBB8GZR8FaGQCCQ8WBB8GZR8FaGQCCw8WAh8FaBYCAgEPFgIfBgUXRW5nbGlzaCAoVW5pdGVkIFN0YXRlcylkAg0PFgIfBWgWAgICDxYCHwYFAzEuMGQCDw8PFgIeC05hdmlnYXRlVXJsBZIBamF2YXNjcmlwdDpGYWNlQm9va1NoYXJlKCcyNzRDMDU1REFGNDE0MkQ1OEVBOERCRDY3RjYwOEIwNScsICdIaWdoIFBlcmZvcm1hbmNlIENvbXB1dGluZzogV2hhdCBIaXN0b3J5IENhbiBUZWFjaCBVcyBBYm91dCB0aGUgUHJlc2VudCBhbmQgRnV0dXJlJylkZAIRDw8WAh8MBZEBamF2YXNjcmlwdDpUd2l0dGVyU2hhcmUoJzI3NEMwNTVEQUY0MTQyRDU4RUE4REJENjdGNjA4QjA1JywgJ0hpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nOiBXaGF0IEhpc3RvcnkgQ2FuIFRlYWNoIFVzIEFib3V0IHRoZSBQcmVzZW50IGFuZCBGdXR1cmUnKWRkAhMPDxYCHwwFkgFqYXZhc2NyaXB0OkxpbmtlZEluU2hhcmUoJzI3NEMwNTVEQUY0MTQyRDU4RUE4REJENjdGNjA4QjA1JywgJ0hpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nOiBXaGF0IEhpc3RvcnkgQ2FuIFRlYWNoIFVzIEFib3V0IHRoZSBQcmVzZW50IGFuZCBGdXR1cmUnKWRkAhUPFgIfBWgWBAIBDxYCHwVoFgICAg8QDxYGHwNnHg1EYXRhVGV4dEZpZWxkBQVWYWx1ZR4ORGF0YVZhbHVlRmllbGQFA0tleWQQFQEXRW5nbGlzaCAoVW5pdGVkIFN0YXRlcykVAQVlbi1VUxQrAwFnFgFmZAICDxYCHwVoFgICAg8QDxYGHwNnHw0FBVZhbHVlHw4FA0tleWQQFQEDMS4wFQEgMjc0QzA1NURBRjQxNDJENThFQThEQkQ2N0Y2MDhCMDUUKwMBZxYBZmQCAg8PFgIfBWhkZAICD2QWAmYPPCsACgEADxYEHwNnHwsCAWQWAmYPZBYGZg8PFgIfBWhkZAIBD2QWAmYPZBYCAgEPZBYCAgEPDxYCHwYFiSU8cCBzdHlsZT0iIj5UaGlzIGNvdXJzZSwgaW4gcGFydG5lcnNoaXAgd2l0aCBJRUVFIEZ1dHVyZSBEaXJlY3Rpb25zLCBpcyBiYXNlZCBvbiBhIHZlcnkgcG9wdWxhciBsZWN0dXJlIHRoYXQgdml2aWRseSBpbGx1c3RyYXRlcyBhIHByb2ZvdW5kIGZhY3QgaW4gdGhlIEhpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nIGVjb3N5c3RlbS4gVGhlIGFyY2hpdGVjdHVyZSB3ZSBhcmUgdXNpbmcgdG9kYXkgb24gdXBjb21pbmcgZXhhc2NhbGUgc3lzdGVtcyBpcyBub3QgbmV3IGF0IGFsbC4gVGltZSBhbmQgdGltZSBhZ2FpbiBlbmdpbmVlcnMgd2FzdGUgdGltZSBhbmQgZWZmb3J0IHRyeWluZyB0byByZS1pbnZlbnQgdGhlIHdoZWVsIGFzIHNvZnR3YXJlIGlzIGdldHRpbmcgc2xvd2VyIG1vcmUgcmFwaWRseSB0aGFuIGhhcmR3YXJlIGJlY29tZXMgZmFzdGVyLiBUaGUgc3RhdGVtZW50ICJzb2Z0d2FyZSBpcyBnZXR0aW5nIHNsb3dlciBhcyBoYXJkd2FyZSBnZXRzIGZhc3RlciIgd2FzIGZpcnN0IGNvaW5lZCBieSBOaWtsYXVzIFdpcnRoIGFzIGVhcmx5IGFzIDE5OTUuIFdlIHdpbGwgYmUgc3R1ZHlpbmcga2V5IGV4YW1wbGVzIG9mICJiaWcgaXJvbiIgY29tcHV0ZXJzIHRoYXQgZXhpc3RlZCBpbiB0aGUgNzBzLCA4MHMsIGFuZCA5MHMgYW5kIHRoZSBjb21wb25lbnQgd29yayBkb25lIG9uIHRob3NlIG1hY2hpbmVzLiBIUEMgcHJvZmVzc2lvbmFscyB3aWxsIGZpbmQgdGhpcyB3b3JrIGV4dHJlbWVseSB2YWx1YWJsZSB0b2RheSBiZWNhdXNlIGl0IHdpbGwgaGVscCB0aGVtIGF2b2lkIGR1cGxpY2F0aW9uIG9mIGVmZm9ydC4gVGhlIGluZHVzdHJ5IGlzIGV4cGVyaWVuY2luZyBhIHNvcnQgb2YgInJldmVyc2UgZGUtamEgdnUiIG9yIG1vcmUgY29ycmVjdGx5ICJqYW1haXMgdnUiIGFzIGl0IGlzIGNhbGxlZCwgd2hpY2ggbWVhbnMgd2UgYXJlIGZpbmRpbmcgc3ViamVjdGl2ZWx5IHVuZmFtaWxpYXIgc29tZXRoaW5nIHRoYXQgd2Uga25vdyB2ZXJ5IHdlbGwgdG8gYmUgZmFtaWxpYXIsIGFuZCBpdCBpcyBleHRyZW1lbHkgYXBwcm9wcmlhdGUgYW5kIHJlbGV2YW50IG5vdy4gSW4gdGhpcyBjb3Vyc2UsIHdlIHdpbGwgYWxzbyBzZWUgaG93IGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgc3RvcHBlZCB3b3JyeWluZyBhYm91dCBvcHRpbWl6YXRpb24gaW4gdGhlIDkwcyBhbmQgZWFybHkgMjAwMCBhbmQgaG93IHRoaXMgYWZmZWN0ZWQgdGhlIGFiaWxpdHkgb2YgYXBwbGljYXRpb25zIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBoYXJkd2FyZSB3aGVuIHRoaW5ncyBjaGFuZ2VkLiBXZSB3aWxsIHRoZW4gY29uY2x1ZGUgYnkgZXhwbGFpbmluZyBob3cgYXBwbGljYXRpb25zIG5lZWQgdG8gYmUgc3RydWN0dXJlZCBpbiBvcmRlciBmb3IgdGhlIGNvbXBpbGVyIHRvIGNvbnZlcnQgdGhlbSBpbnRvIG9wdGltaXplZCBjb2RlIHRoYXQgd2lsbCB0YWtlIGZ1bGwgYWR2YW50YWdlIG9mIHRoZSBoYXJkd2FyZS48L3A+PHAgc3R5bGU9IiI+PGVtPldoYXQgeW91IHdpbGwgbGVhcm46PC9lbT48L3A+PHVsPjxsaT5SZXZpZXcgdGhlIGFkdmVudCBvZiBTdXBlciBDb21wdXRlcnMgaW4gdGhlIDYwcywgNzBzLCAmYW1wOyA4MHMsIHRoZSDigJxSZWFsIFZlY3RvciBNYWNoaW5lc+KAnSB0byBDb250ZW1wb3JhcnkgSGlnaCBQZXJmb3JtYW5jZSBDb21wdXRlcnM8L2xpPjxsaT5EaXNjdXNzIHRoZSDigJxBdHRhY2sgb2YgdGhlIEtpbGxlciBNaWNyb3PigJ0gaW4gdGhlIDkwcyAmYW1wOyB0aGUgQmVuZWZpdHMgb2YgT24tUHJvY2Vzc29yIFBhcmFsbGVsaXNtPC9saT48bGk+RXhhbWluZSB0aGUgRXZvbHV0aW9uIG9mIE1pY3JvcHJvY2Vzc29ycyBpbiB0aGUgTGF0ZSA5MHMgdG8gMjAwNSwgdGhlIERlY3JlYXNpbmcgQ2xvY2sgQ3ljbGUgJmFtcDsgdGhlIEVmZmVjdHMgT24gQXBwbGljYXRpb24gRGV2ZWxvcGVyczwvbGk+PGxpPlJldmlldyB0aGUgaW50cm9kdWN0aW9uIG9mIEdQVXMgYW5kIE11bHRpLUNvcmUgTm9kZXMgdG8gSGlnaCBQZXJmb3JtYW5jZSBDb21wdXRlcnMgZnJvbSAyMDA1IHRvIFRvZGF5ICZhbXA7IHRoZSB1c2Ugb2YgTXVsdGktY29yZSBub2RlczwvbGk+PGxpPkRpc2N1c3MgdGhlIHJlLWludHJvZHVjdGlvbiBvZiBWZWN0b3JzIGluIENQVXMgJmFtcDsgdGhlIENoYWxsZW5nZXMgZm9yIEFwcGxpY2F0aW9uIERldmVsb3BlcnM8L2xpPjwvdWw+PHA+PHN0cm9uZz5UaGlzIGNvdXJzZSBpcyBwYXJ0IG9mIHRoZSBmb2xsb3dpbmcgY291cnNlIHByb2dyYW06PC9zdHJvbmc+PC9wPjxwPjxhIGhyZWY9Imh0dHBzOi8vaWxuLmllZWUub3JnL3B1YmxpYy9jb250ZW50ZGV0YWlscy5hc3B4P2lkPTJENDI2QzVERUVBNDQzRTM4REQ3NjBBMzc3RUZCNjM2IiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5IaWdoIFBlcmZvcm1hbmNlIENvbXB1dGluZzogVGVjaG5vbG9naWVzLCBTb2x1dGlvbnMgdG8gRXhhc2NhbGUgU3lzdGVtcywgYW5kIEJleW9uZDwvYT48L3A+PHAgZGF0YS1lbXB0eT0idHJ1ZSI+PHN0cm9uZz5Db3Vyc2VzIGluY2x1ZGVkIGluIHRoaXMgcHJvZ3JhbTo8L3N0cm9uZz48L3A+PHVsPjxsaT48YSBocmVmPSJodHRwczovL2lsbi5pZWVlLm9yZy9wdWJsaWMvY29udGVudGRldGFpbHMuYXNweD9pZD0xQzREMDY4NTIwNkI0RTYyQjZFNjVGOUU2NEZFODg0RSIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+SGlnaCBQZXJmb3JtYW5jZSBDb21wdXRpbmc6IEFjY2VsZXJhdGluZyBBcHBsaWNhdGlvbiBQZXJmb3JtYW5jZSBVc2luZyBIYXJkd2FyZSBhbmQgU29mdHdhcmU8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbG4uaWVlZS5vcmcvUHVibGljL0NvbnRlbnREZXRhaWxzLmFzcHg/aWQ9MTkzNDMwNkY0MkVDNEVDOTk1NDY4RjcwRkJENzk4MDQiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPkhpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nOiBBcHBseWluZyBFeGFzY2FsZSBDb21wdXRpbmcgdG8gUmVhbC1Xb3JsZCBQcm9ibGVtczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2lsbi5pZWVlLm9yZy9wdWJsaWMvY29udGVudGRldGFpbHMuYXNweD9pZD05NDA0RDMyQTYyQUY0OUYzOTI2OTA0QjU1RkJCNzM5RCIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+SGlnaCBQZXJmb3JtYW5jZSBDb21wdXRpbmc6IEFjaGlldmluZyBQZXJmb3JtYW5jZSBhbmQgRWZmaWNpZW5jeTwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2lsbi5pZWVlLm9yZy9wdWJsaWMvY29udGVudGRldGFpbHMuYXNweD9pZD02NjQ4QjhFQUY5QTY0RTY5QkMzMjdBRDg3QjhCQTAzNSIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+SGlnaCBQZXJmb3JtYW5jZSBDb21wdXRpbmc6IFVzZSBvZiBBSSBhbmQgRW1lcmdpbmcgVGVjaG5vbG9naWVzIGluIFNjaWVuY2U8L2E+PC9saT48L3VsPjxwPjxzdHJvbmc+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMjI2LCA4MCwgNjUpOyI+SW5zdHJ1Y3R1cmU8L3NwYW4+PC9zdHJvbmc+PC9wPjxwPjxzdHJvbmc+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMjI2LCA4MCwgNjUpOyI+PGltZyBzcmM9Imh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9jb3Vyc2VzL21ldGFkYXRhL0VXMTY4MC9FRFA2ODBTTUUuanBnIiBhbHQ9IkpvaG4gTGV2ZXNxdWUgUGhvdG8iPjwvc3Bhbj48L3N0cm9uZz48YnI+PC9wPjxwPjxzdHJvbmc+Sm9obiBMZXZlc3F1ZTwvc3Ryb25nPjxicj48YnI+Sm9obiBMZXZlc3F1ZSBpcyBhIGhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nIEV2YW5nZWxpc3QgdGhhdCBob2xkcyBhZHZhbmNlZCBkZWdyZWVzIGluIGJvdGggcGh5c2ljcyBhbmQgbWF0aGVtYXRpY3MgYW5kIGhhcyB3b3JrZWQgaW4gdGhlIGZpZWxkIG9mIGhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nIGZvciBvdmVyIDUwIHllYXJzLiBIZSBoYXMgd29ya2VkIHdpdGggYWxsIHJlbGV2YW50IGhhcmR3YXJlIGZyb20gZWFybGllc3QgdG8gbGF0ZXN0IGFuZCBoYXMgbGVkIHRlYW1zIGZvciBJQk0gUmVzZWFyY2gsIEFwcGxpZWQgUGFyYWxsZWwgUmVzZWFyY2gsIGFuZCBQYWNpZmljIFNpZXJyYSBSZXNlYXJjaC4gRm9yIG1hbnkgeWVhcnMgaGUgd2FzIHRoZSBkaXJlY3RvciBvZiB0aGUgQ3JheSBTdXBlcmNvbXB1dGVyIENlbnRlciBvZiBFeGNlbGxlbmNlIGJhc2VkIGF0IHRoZSBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkgaW4gTmV3IE1leGljby4gVG9kYXkgaGUgaXMgYSBtZW1iZXIgb2YgdGhlIEhld2xldHQgUGFja2FyZCBNaXNzaW9uIENyaXRpY2FsIFN5c3RlbXMgQ2hpZWYgVGVjaG5vbG9neSBPZmZpY2UuIEluIHRoZSBuYXRpb25hbC1pbnRlcm5hdGlvbmFsIHNjaWVudGlmaWMgYW5kIHRlY2huaWNhbCBjb21wdXRpbmcgY29tbXVuaXR5LCBoZSBpcyBhIHdlbGwta25vd24gbGVjdHVyZXIgYW5kIGF1dGhvciBvZiB0aHJlZSBib29rczogQSBHdWlkZWJvb2sgdG8gRm9ydHJhbiBvbiBTdXBlcmNvbXB1dGVycywgSGlnaCBQZXJmb3JtYW5jZSBDb21wdXRpbmc6IFByb2dyYW1taW5nIGFuZCBBcHBsaWNhdGlvbnMsIGFuZCBQcm9ncmFtbWluZyBmb3IgSHlicmlkIE11bHRpL01hbnljb3JlIE1QUCBTeXN0ZW1zLjxicj48YnI+PHN0cm9uZz5QdWJsaWNhdGlvbiBZZWFyPC9zdHJvbmc+OiAyMDIyPGJyPjxicj48c3Ryb25nPklTQk48L3N0cm9uZz46IDk3OC0xLTcyODEtNzgyNi00PC9wPmRkAgIPDxYCHwVoZGQCAw9kFgJmDzwrAAoBAA8WAh8FaGRkAgQPZBYCAgEPPCsACgEADxYGHwNnHwsCAR8FaGQWAmYPZBYGZg8PFgIfBWhkZAIBD2QWAmYPZBYEAgEPDxYEHg1PbkNsaWVudENsaWNrBVpqYXZhc2NyaXB0OnJldHVybiBQdWJsaWNMYXVuY2hJdGVtKCcyNzRDMDU1REFGNDE0MkQ1OEVBOERCRDY3RjYwOEIwNScsICdDb3Vyc2V3YXJlJywgJ0YnKTsfBWhkZAIDDw8WAh8PBVpqYXZhc2NyaXB0OnJldHVybiBQdWJsaWNMYXVuY2hJdGVtKCcyNzRDMDU1REFGNDE0MkQ1OEVBOERCRDY3RjYwOEIwNScsICdDb3Vyc2V3YXJlJywgJ1QnKTtkZAICDw8WAh8FaGRkAgUPZBYCZg88KwAKAQAPFgQfA2cfCwIBZBYCZg9kFgZmDw8WAh8FaGRkAgEPZBYCZg9kFgQCAw8WAh8FaBYCAgEPDxYCHwZlZGQCBQ8WAh8FaBYCAgEPDxYCHwZlZGQCAg8PFgIfBWhkZAIGDw8WAh8FaGQWBAIGD2QWAgIDDxBkZBYBZmQCCA88KwAOAgAUKwACZBcAARYCFgsPAgcUKwAHPCsABQEEBQ5FeHBhbmRDb2xsYXBzZTwrAAUBBAULVGl0bGVDb2x1bW48KwAFAQQFC1RpdGxlQ29sdW1uPCsABQEEBQlTdGFydERhdGU8KwAFAQQFBVRpdGxlPCsABQEEBQZTdGF0dXM8KwAFAQQFBkZvcm1hdGRlFCsAAAspeVRlbGVyaWsuV2ViLlVJLkdyaWRDaGlsZExvYWRNb2RlLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDEzLjEuNDE3LjQwLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDQCPCsABwALKXRUZWxlcmlrLldlYi5VSS5HcmlkRWRpdE1vZGUsIFRlbGVyaWsuV2ViLlVJLCBWZXJzaW9uPTIwMTMuMS40MTcuNDAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49MTIxZmFlNzgxNjViYTNkNAFkZGRkZmQCAw9kFgICAQ9kFgJmDzwrAAoBAA8WBB8DZx8LAgFkFgJmD2QWBmYPDxYCHwVoZGQCAQ9kFgJmD2QWGAIDD2QWAgIBDw8WBB4ISW1hZ2VVcmwFQS9DU2VydmVyLy9JbWFnZS8yNzRDMDU1REFGNDE0MkQ1OEVBOERCRDY3RjYwOEIwNS9IUENfQ291cnNlXzEucG5nHg1BbHRlcm5hdGVUZXh0BVJIaWdoIFBlcmZvcm1hbmNlIENvbXB1dGluZzogV2hhdCBIaXN0b3J5IENhbiBUZWFjaCBVcyBBYm91dCB0aGUgUHJlc2VudCBhbmQgRnV0dXJlZGQCBw8WAh8FaBYCZg8WAh8FaBYCAgMPDxYCHwwFGX4vQ29udGVudERldGFpbHMuYXNweD9pZD1kZAIJD2QWBgIDDxYCHwYFFkVkdWNhdGlvbmFsIEFjdGl2aXRpZXNkAgcPFgIfBgUGRURQNjgwZAILDxYCHwYFATFkAgsPFgIfBWgWAgIDDxYCHwYFFkVkdWNhdGlvbmFsIEFjdGl2aXRpZXNkAg0PFgIfBWgWAgIDDxYCHwYFBkVEUDY4MGQCDw9kFgICAw8WAh8GBQ4wLjEgQ0VVLyAxIFBESGQCEQ8WAh8FaBYIAgMPFgIfBmVkAgcPFgIfBmVkAgsPFgIfBmVkAgwPFgIfBmVkAhMPFgIfBWgWAgIDDxYCHwZlZAIVDxYCHwVoFgQCAQ8WAh8GBTxZb3VyIHN1YnNjcmlwdGlvbiBpcyB2YWxpZCBmb3IgICBhZnRlciB0aGUgZGF0ZSBvZiBwdXJjaGFzZS5kAgMPFgIfBgUjWW91ciBzdWJzY3JpcHRpb24gaXMgdmFsaWQgdW50aWwgIC5kAhcPFgIfBWgWAgIDDxYCHwZlZAIZDxYCHwVoFgICAw8WAh8GBQgwIFBvaW50c2QCGw8WAh8FaBYEAgEPFgIfBWgWBGYPDxYCHwVoZGQCAQ8PFgIfBWhkZAICDxYCHwVoZAICDw8WAh8FaGRkGAcFLWN0bDAwJE1haW5Db250ZW50JHVjQ29udGVudE1ldGFEYXRhJEZvcm1WaWV3MQ8UKwAHZGRkZGQWAAIBZAUpY3RsMDAkTWFpbkNvbnRlbnQkdWNEZXNjcmlwdGlvbiRGb3JtVmlldzEPFCsAB2RkZGRkFgACAWQFEWN0bDAwJFNraW5DaG9vc2VyDxQrAAJlBQVCbGFja2QFLGN0bDAwJE1haW5Db250ZW50JHVjUHJpbWFyeUFjdGlvbnMkRm9ybVZpZXcxDxQrAAdkZGRkZBYAAgFkBSpjdGwwMCRNYWluQ29udGVudCR1Y0NvbnRlbnRJbmZvMiRGb3JtVmlldzEPFCsAB2RkZGRkFgACAWQFKmN0bDAwJE1haW5Db250ZW50JHVjQ29udGVudEluZm8xJEZvcm1WaWV3MQ8UKwAHZGRkZGQWAAIBZAUrY3RsMDAkTWFpbkNvbnRlbnQkdWNDb250ZW50U3RhdHVzJEZvcm1WaWV3MQ9nZCBeCOdOJScofl4TFjH7xzRu3+Co" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['Form1']; if (!theForm) { theForm = document.Form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/WebResource.axd?d=sO5nsER-pRg0ZuNIQIp3jZn9c8gIhKKDxzNKE7-U8bsC_kmMfMuDEaL3g7Q1VkF4EjHm-mb6SibfiZBQNL6K4Yo5qxE1&t=638628080627334853" type="text/javascript"></script> <script type="text/javascript">var blnAutoSuggest = true;</script><script type="text/javascript">var blnIsMobileDevice = false;</script><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-125730394-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <script src="/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=RadScriptManager1_TSM&compress=1&_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3a9b1e5a2f-37b8-41b2-8f9c-4823bd51663f%3aea597d4b%3ab25378d2" type="text/javascript"></script> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="380586C1" /> </div> <script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('ctl00$RadScriptManager1', 'Form1', [], [], [], 90, 'ctl00'); //]]> </script> <a class="sr-only sr-only-focusable" href="#content" id="skipToMainContent"> Skip to Page Content </a> <header> <div id="pnlTop" class="admin"> <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="top-MetaNav-bar" data-bind="template: { name: 'MetaNav-template'}"></nav> <script type="text/html" id="MetaNav-template"> <div class="container"> <div class="navbar-header"> <a aria-expanded="false" class="pull-left navbar-toggle collapsed" data-toggle="collapse" role="button" data-target="#main-navbar"> <span class="sr-only">Toggle Navigation></span><span class="icon-bar" role="presentation"></span><span class="icon-bar" role="presentation"></span><span class="icon-bar" role="presentation"></span> </a> <a role="button" data-bind="attr:{href:metaNavMenu.lnkCart}" class="navbar-toggle metanav-responsive-shopping-cart"> <span class="fa fa-shopping-cart fa-lg"> <span class="sr-only">Cart</span> <span class="badge" data-bind="text:cartItems"></span> </span> </a> <!--ko if: IsMember --> <a role="button" data-bind="attr:{href:metaNavMenu.lnkSignOut}" class="navbar-toggle metanav-responsive-sign-out"> <span class="fa fa-sign-out fa-lg"> <span class="sr-only">Sign Out</span> </span> </a> <!-- /ko --> </div> <div class="collapse navbar-collapse" id="main-navbar"> <ul class="nav navbar-nav" id="Meta-nav-left"> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkIEEEorg}" class="nav-link">IEEE.org</a> </li> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkxplore}" class="nav-link">IEEE <span class="xplore-text">Xplore</span> Digital Library</a> </li> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkIEEEStandard}" class="nav-link">IEEE Standards</a> </li> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkSpectrum}" class="nav-link">IEEE Spectrum</a> </li> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkMore}" class="nav-link">More Sites</a> </li> </ul> <ul class="nav navbar-nav navbar-right" id="Meta-nav-right"> <!--ko if: IsMember --> <li class="nav-item dropdown"> <a data-bind="text:userName" class="nav-link dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="AccountView"></a> <ul class="dropdown-menu" id="account-menu" role="menu" tabindex="0"> <!-- ko if: AllowCart --> <li role="menuitem" tabindex="-1"><a data-bind="attr:{href:metaNavMenu.lnkMyAccount}">My Account</a></li> <!--ko if: ShowInstitutionalLink--> <li role="menuitem" tabindex="-1"><a data-bind="attr:{href:metaNavMenu.lnkInstitutionalSignIn}">Institutional Sign In</a></li> <!-- /ko --> <!-- /ko --> <li role="menuitem" tabindex="-1"><a data-bind="attr:{href:metaNavMenu.lnkSignOut}" id="lnkSignOut">Sign Out</a></li> </ul> </li> <!-- /ko --> <!-- ko if: AllowCart --> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkCart}" class="nav-link">Cart (<span data-bind="text:cartItems"></span>)</a> </li> <!-- /ko --> <!--ko if: ShowSignInLink--> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkNewAccount}" class="nav-link">Create Account</a> </li> <li class="nav-item"> <a data-bind="attr:{href:metaNavMenu.lnkSignIn}" class="nav-link" id="lnkSignIn">Sign In</a> </li> <!-- /ko --> </ul> </div> </div> </script> </div> <script src='https://www.ieee.org/ieee-mashup/js/common/jquery.cookie.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/common/jquery.json-2.2.min.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/common/postmessage.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/minicart/ieee-mashup-util.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/minicart/ieee-mini-cart-constants.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/common/jquery.ba-jqmq.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/minicart/ieee-minicart-include.js'></script> <script src='https://www.ieee.org/ieee-mashup/js/common/ibpUICommonUtil.js'></script> <script> var objMenu = ""; var MenuModel = {}; $.getJSON('/Menus/MetaNav/PopulateMenuData', function (data) { objMenu = data.metaNavMenu; MenuModel = ko.mapping.fromJS(data); ko.applyBindings(MenuModel, $('#top-MetaNav-bar')[0]); // IEEE-94 if (data.externalLogout) { $.post('/Menus/MetaNav/RemoveSessionsAndLogout', function (result) { document.cookie = encodeURIComponent("_l_n_u") + "=" + encodeURIComponent(MenuModel.metaNavMenu.lnkSignOutReturnURL()) + ";-1;domain=.ieee.org;path=/"; $.ajax({ url: MenuModel.metaNavMenu.lnkSignOut(), type: "GET", dataType: "jsonp", }).always(function (result) { window.location.href = MenuModel.metaNavMenu.lnkSignOut2(); }); }); } $('#lnkSignIn').click(function (e) { e.preventDefault(); $.ajax({ type: 'GET', url: objMenu.lnkAuthenticationApi, dataType: 'json', crossDomain: true, xhrFields: { withCredentials: true }, success: function (result) { var strResult = JSON.stringify(result); var strMemberInfo = JSON.stringify(result.userProfile.member) if (strMemberInfo != null) { $.post('/Menus/MetaNav/SaveSessionAndPopulateMenuData', { data: strResult }, function (objdata) { objdata = JSON.parse(objdata); ko.mapping.fromJS(objdata, MenuModel); }); } else { var signInUrl = MenuModel.metaNavMenu.lnkSignIn(); var path = window.parent.location.pathname.toLocaleLowerCase(); var host = window.parent.location.hostname; if (path.indexOf("public") > -1) { if (path.indexOf("trainingcatalog") == -1) { signInUrl += encodeURI("&returnURL=https://" + host + path.replace("/public", "") + location.search); } } window.location.href = signInUrl; //window.location.href = MenuModel.metaNavMenu.lnkSignIn(); } } }).fail(function () { var signInUrl = MenuModel.metaNavMenu.lnkSignIn(); var path = window.parent.location.pathname.toLocaleLowerCase(); var host = window.parent.location.hostname; if (path.indexOf("public") > -1) { if (path.indexOf("trainingcatalog") == -1) { signInUrl += encodeURI("&returnURL=https://" + host + path.replace("/public", "") + location.search); } } window.location.href = signInUrl; //window.location.href = MenuModel.metaNavMenu.lnkSignIn(); }); }); $('#lnkSignOut').click(function (e) { e.preventDefault(); $.post('/Menus/MetaNav/RemoveSessionsAndLogout', function (result) { document.cookie = encodeURIComponent("_l_n_u") + "=" + encodeURIComponent(MenuModel.metaNavMenu.lnkSignOutReturnURL()) + ";-1;domain=.ieee.org;path=/"; $.ajax({ url: MenuModel.metaNavMenu.lnkSignOut(), type: "GET", dataType: "jsonp", }).always(function (result) { window.location.href = MenuModel.metaNavMenu.lnkSignOut2(); }); }); }); mc_refreshMiniCart( function (data) { /* Updating the cart quantity */ ko.dataFor($('#top-MetaNav-bar')[0]).cartItems(data.cartItemQty); }, function (data) { console.log('error : ' + data); } ); } ); </script> <div id="public-nav" class="learner"> <a class="sr-only sr-only-focusable" href="#content" id="skipToMainContent"> Skip to Page Content </a> <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="top-navigation-bar"> <div class="container"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#utility-nav"> <span class="sr-only">Toggle Navigation</span> <span class="icon-bar" role="presentation"></span> <span class="icon-bar" role="presentation"></span> <span class="icon-bar" role="presentation"></span> </button> <a href="/public/trainingcatalog.aspx"> <span class="navbar-logo navbar-logo-left navbar-logo-pm"></span> </a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="utility-nav"> <ul class="nav navbar-nav"> <li class="search-bar"> <div class="input-group"> <span class="input-group-btn"> <button class="btn btn-default" type="button" onclick="window.location.href='/public/searchresults?q=&at=T&ty=ML.BASE.DV.SearchAnyWords&ln='">Browse Catalog</button> </span> <label for="txtGlobalSearch" class="sr-only">Search Catalog</label> <input type="search" id="txtGlobalSearch" placeholder="Search Catalog" class="form-control" autocomplete="off" data-bind="ko_autocomplete:{listId:'autocomplete-list', numberOfResults: numberOfResults, dataObject: searchResults}, enterkey:SiteWideSearchRedirect" /> <span class="input-group-btn"> <button class="btn btn-default" type="button" onclick="return SiteWideSearchRedirect();"><span class="fa fa-search" title="Search"></span></button> </span> <ul id="autocomplete-list" class="autocomplete" data-bind="template: { name: 'autocomplete-template', data: searchResults}" style="display:none"></ul> </div> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li id="help-list-item"> <a id="lnkHelp" title='Help' href="" target="_blank"> <span class="fa fa-question-circle fa-lg"> <em class="sr-only">Help</em> </span> </a> </li> </ul> <a class="hidden-xs hidden-sm" href="https://www.ieee.org/index.html"> <span class="navbar-logo navbar-logo-right" title="IEEE Logo" aria-label="IEEE Logo" role="img"></span> </a> </div> <!-- /.navbar-collapse --> </div> <!-- /.container --> </nav> </div> <div class="brand-bar-container" role="presentation"> <div class="container hidden-sm hidden-xs brand-bar"> <div class="row"> <div class="col-xs-12"> <div class="brand-bar-logo" role="presentation"></div> <div class="brand-bar-photo" role="presentation"></div> </div> </div> </div> </div> <script type="text/html" id="autocomplete-template"> <!--ko if: $data --> <!--ko foreach: $data.search_results --> <li> <a data-bind="attr: {'href': '/public/contentdetails.aspx?id=' + $data.id}, formatText: [name]"> {0} <span class="content_type" data-bind="text: type_name"></span> </a> </li> <!-- /ko --> <!--ko if: $root.numberOfResults() < $data.total --> <li class="see-all"> <a onclick="return SiteWideSearchRedirect();" data-bind="enterkey:SiteWideSearchRedirect" href="#"> See all results for "<span class='searchText' data-bind='text: $root.search_term()'></span>" </a> </li> <!-- /ko --> <!-- /ko --> </script> <script> $(function () { var query = getQueryStringValueByName("q"); if (query.length > 0) { $('#txtGlobalSearch').val(query); } var viewModel = { searchResults: ko.observableArray([]), numberOfResults: ko.observable(5), search_term: function () { return $('input[type="search"]:visible').val(); } } ko.applyBindings(viewModel, $('#public-nav')[0]); }); $('#txtGlobalSearch').on('keydown', function (event) { var keypressed = event.keyCode || event.which; if (keypressed === 13) { return SiteWideSearchRedirect(); } }); var searchLanguages = ''; function SiteWideSearchRedirect() { var SearchTerm = encodeURIComponent(document.getElementById('txtGlobalSearch').value); var SearchType = "ML.BASE.DV.SearchAnyWords"; var url = "/public/searchresults"; var RedirectUrl = url + "?q=" + SearchTerm + "&at=T&ty=" + SearchType + "&ln=" + searchLanguages; $(location).attr('href', RedirectUrl); return false; } //Set Shopping Cart Badge Count if (true || $('.badge').length > 0) { $.ajax({ url: '/Menus/TopLevelMenu/GetCartCount', dataType: 'text', success: function (sc_count) { $('.badge').text(sc_count); } }); } //Set help Link if ($('#lnkHelp').length > 0) { $.ajax({ url: '/Menus/TopLevelMenu/GetHelpUrl', dataType: 'text', success: function (help_url) { $('#lnkHelp').attr('href', help_url); if(help_url.lastIndexOf('401') == -1) { $('#help-list-item').hide(); } } }); } </script> <div class="brand-bar-container" role="presentation"> <div class="container hidden-sm hidden-xs brand-bar"> <div class="row"> <div class="col-xs-12"> <div class="brand-bar-logo" role="presentation"></div> <div class="brand-bar-photo" role="presentation"></div> </div> </div> </div> </div> </header> <div class="container"> <div id="content" class="row" tabindex="-1" role="main"> <div class="col-md-8"> <div class="portlet"> <h1>High Performance Computing: What History Can Teach Us About the Present and Future</h1> <ul class="list-inline"> <li> <strong> Online </strong> </li> <li class="social-sharing"> </li> </ul> <p> <p style="">This course, in partnership with IEEE Future Directions, is based on a very popular lecture that vividly illustrates a profound fact in the High Performance Computing ecosystem. The architecture we are using today on upcoming exascale systems is not new at all. Time and time again engineers waste time and effort trying to re-invent the wheel as software is getting slower more rapidly than hardware becomes faster. The statement "software is getting slower as hardware gets faster" was first coined by Niklaus Wirth as early as 1995. We will be studying key examples of "big iron" computers that existed in the 70s, 80s, and 90s and the component work done on those machines. HPC professionals will find this work extremely valuable today because it will help them avoid duplication of effort. The industry is experiencing a sort of "reverse de-ja vu" or more correctly "jamais vu" as it is called, which means we are finding subjectively unfamiliar something that we know very well to be familiar, and it is extremely appropriate and relevant now. In this course, we will also see how application developers stopped worrying about optimization in the 90s and early 2000 and how this affected the ability of applications to take advantage of the hardware when things changed. We will then conclude by explaining how applications need to be structured in order for the compiler to convert them into optimized code that will take full advantage of the hardware.</p><p style=""><em>What you will learn:</em></p><ul><li>Review the advent of Super Computers in the 60s, 70s, & 80s, the “Real Vector Machines” to Contemporary High Performance Computers</li><li>Discuss the “Attack of the Killer Micros” in the 90s & the Benefits of On-Processor Parallelism</li><li>Examine the Evolution of Microprocessors in the Late 90s to 2005, the Decreasing Clock Cycle & the Effects On Application Developers</li><li>Review the introduction of GPUs and Multi-Core Nodes to High Performance Computers from 2005 to Today & the use of Multi-core nodes</li><li>Discuss the re-introduction of Vectors in CPUs & the Challenges for Application Developers</li></ul><p><strong>This course is part of the following course program:</strong></p><p><a href="https://iln.ieee.org/public/contentdetails.aspx?id=2D426C5DEEA443E38DD760A377EFB636" rel="noopener noreferrer" target="_blank">High Performance Computing: Technologies, Solutions to Exascale Systems, and Beyond</a></p><p data-empty="true"><strong>Courses included in this program:</strong></p><ul><li><a href="https://iln.ieee.org/public/contentdetails.aspx?id=1C4D0685206B4E62B6E65F9E64FE884E" rel="noopener noreferrer" target="_blank">High Performance Computing: Accelerating Application Performance Using Hardware and Software</a></li><li><a href="https://iln.ieee.org/Public/ContentDetails.aspx?id=1934306F42EC4EC995468F70FBD79804" rel="noopener noreferrer" target="_blank">High Performance Computing: Applying Exascale Computing to Real-World Problems</a></li><li><a href="https://iln.ieee.org/public/contentdetails.aspx?id=9404D32A62AF49F3926904B55FBB739D" rel="noopener noreferrer" target="_blank">High Performance Computing: Achieving Performance and Efficiency</a></li><li><a href="https://iln.ieee.org/public/contentdetails.aspx?id=6648B8EAF9A64E69BC327AD87B8BA035" rel="noopener noreferrer" target="_blank">High Performance Computing: Use of AI and Emerging Technologies in Science</a></li></ul><p><strong><span style="color: rgb(226, 80, 65);">Instructure</span></strong></p><p><strong><span style="color: rgb(226, 80, 65);"><img src="https://ieeexplore.ieee.org/courses/metadata/EW1680/EDP680SME.jpg" alt="John Levesque Photo"></span></strong><br></p><p><strong>John Levesque</strong><br><br>John Levesque is a high-performance computing Evangelist that holds advanced degrees in both physics and mathematics and has worked in the field of high-performance computing for over 50 years. He has worked with all relevant hardware from earliest to latest and has led teams for IBM Research, Applied Parallel Research, and Pacific Sierra Research. For many years he was the director of the Cray Supercomputer Center of Excellence based at the Los Alamos National Laboratory in New Mexico. Today he is a member of the Hewlett Packard Mission Critical Systems Chief Technology Office. In the national-international scientific and technical computing community, he is a well-known lecturer and author of three books: A Guidebook to Fortran on Supercomputers, High Performance Computing: Programming and Applications, and Programming for Hybrid Multi/Manycore MPP Systems.<br><br><strong>Publication Year</strong>: 2022<br><br><strong>ISBN</strong>: 978-1-7281-7826-4</p> </p> <hr /> <script type="text/javascript"> function XploreLogin(strURL) { window.location.href = strURL; return false; } </script> </div> </div><div class="col-md-4"> <div class="portlet"> <div id="PriceBox" class="price-box"> <template id="priceBoxTemplate"> <div id="ieeePriceBox" class="price-box panel panel-default"> <div class="panel-body"> <div class="price-box-cost-groups" data-bind="foreach: costGroups"> <div class="row"> <div class="col-xs-9 cost-group-name"><strong data-bind="text: name"></strong></div> <div class="col-xs-3 cost-group-cost text-right"><strong data-bind="text: '$' + cost"></strong></div> </div> </div> <div class="price-box-add-to-cart clearfix"> <a class="price-box-add-to-cart-button btn btn-default pull-right" id="IEEEAddToCart" data-bind="text: addToCartText"></a> </div> <div class="price-box-additional-details"> <!-- ko if: $data.pricingText --> <div class="price-box-pricing-text" data-bind="html: pricingText"></div> <!-- /ko --> <!-- ko if: $data.joinText --> <div class="price-box-join-text" data-bind="html: joinText"></div> <!-- /ko --> </div> </div> </div> </template> <template id="priceBoxPurchasedTemplate"> <div id="ieeePriceBoxPurchased" class="price-box price-box-purchased panel panel-default"> <div class="panel-body"> <div class="price-box-purchased-text" data-bind="visible: purchased, html: purchasedText"></div> <div class="price-box-tracked-subscription-text" data-bind="visible: trackedSubscription, text: trackedSubscriptionText"></div> <div class="price-box-untracked-subscription-text" data-bind="visible: untrackedSubscription, html: untrackedSubscriptionText"></div> <div class="price-box-untracked-subscription-button text-center" data-bind="visible: untrackedSubscription"> <a class="btn btn-default" data-bind="html: goToIEEEXploreText, attr: { href: goToIEEEXploreUrl }"></a> </div> <div class="price-box-tracked-subscription-bundle-text" data-bind="visible: trackedSubscriptionBundle, text: trackedSubscriptionBundleText"></div> </div> </div> </template> <template id="priceBoxNotAvailableTemplate"> <div id="ieeePriceBoxNotAvailable" class="price-box price-box-not-available panel panel-default"> <div class="panel-body"> <div class="price-box-not-active-text" data-bind="visible: !isActive, text: $data.inactiveText"></div> <div class="price-box-checked-out-text" data-bind="visible: $data.classroomButNoSeats, html: $data.classroomButNoSeatsText"></div> <div class="price-box-checked-out-text" data-bind="visible: !isAvailable, text: $data.unavailableText"></div> </div> </div> </template> <div id="ieeePriceBoxAddToCartSuccess" class="price-box price-box-add-to-cart-success modal fade" role="dialog" aria-labelledby="addToCartSuccessHeaderText"> <div class="modal-dialog" role="document"> <div class="modal-content text-center"> <div class="modal-body"> <div> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <strong id="addToCartSuccessHeaderText" data-bind="text: success"></strong> </div> <div class="price-box-checkout-button"> <a class="btn btn-default" data-bind="text: proceedToCheckout, attr: { href: checkoutUrl }"></a> </div> <div> <a href="#" data-dismiss="modal" data-bind="text: continueBrowsing"></a> </div> </div> </div> </div> </div> <script> $(function () { var setupPriceBox = function (priceBoxData) { var priceBoxTemplate = $('#priceBoxTemplate').html(); var priceBox = $(priceBoxTemplate); priceBox.find('#IEEEAddToCart').click(function () { ShowOverlay($('#ieeePriceBox')); mc_addItems('[{"partNum" : "' + ko.dataFor($('#ieeePriceBox')[0]).productId + '", "quantity":"1", "country":"", "membershipType" : "", "quoteGrade" : ""}]', function (data) { ko.dataFor($('#top-MetaNav-bar')[0]).cartItems(data.cartItemQty); $('#ieeePriceBoxAddToCartSuccess').modal(); HideOverlay($('#ieeePriceBox')); }, function (data) { console.log('error : ' + data); alert(data); HideOverlay($('#ieeePriceBox')); } ); }); ko.applyBindings(priceBoxData, priceBox[0]); $('#priceBoxTemplate').closest('.col-md-4').prepend(priceBox); }; var priceBoxUrl = "/custom/IEEEUtilities/getpricebox?id=" + getQueryStringValueByName('id'); var forcePruchased = getQueryStringValueByName('forcePurchased'); if (forcePruchased.length > 0) { priceBoxUrl += "&forcePurchased=" + forcePruchased; } var forceTrackedSubscription = getQueryStringValueByName('forceTrackedSubscription'); if (forceTrackedSubscription.length > 0) { priceBoxUrl += "&forceTrackedSubscription=" + forceTrackedSubscription; } var forceUntrackedSubscription = getQueryStringValueByName('forceUntrackedSubscription'); if (forceUntrackedSubscription.length > 0) { priceBoxUrl += "&forceUntrackedSubscription=" + forceUntrackedSubscription; } var forceTrackedSubscriptionBundle = getQueryStringValueByName('forceTrackedSubscriptionBundle'); if (forceTrackedSubscriptionBundle.length > 0) { priceBoxUrl += "&forceTrackedSubscriptionBundle=" + forceTrackedSubscriptionBundle; } $.ajax({ url: priceBoxUrl }).done( function (priceBoxData) { if ((typeof priceBoxData.isActive != 'undefined' && !priceBoxData.isActive) || (typeof priceBoxData.isAvailable != 'undefined' && !priceBoxData.isAvailable)) { var priceBoxNotAvailableTemplate = $('#priceBoxNotAvailableTemplate').html(); var priceBoxNotAvailable = $(priceBoxNotAvailableTemplate); ko.applyBindings(priceBoxData, priceBoxNotAvailable[0]); $('#priceBoxNotAvailableTemplate').closest('.col-md-4').prepend(priceBoxNotAvailable); } else if ((typeof priceBoxData.classroomButNoSeats == 'undefined' || !priceBoxData.classroomButNoSeats || priceBoxData.hasSectionEnrollment) && (priceBoxData.purchased || priceBoxData.trackedSubscription || priceBoxData.untrackedSubscription || priceBoxData.trackedSubscriptionBundle)) { var priceBoxPurchasedTemplate = $('#priceBoxPurchasedTemplate').html(); var priceBoxPurchased = $(priceBoxPurchasedTemplate); ko.applyBindings(priceBoxData, priceBoxPurchased[0]); $('#priceBoxPurchasedTemplate').closest('.col-md-4').prepend(priceBoxPurchased); } else if (typeof priceBoxData.classroomButNoSeats != 'undefined' && !!priceBoxData.classroomButNoSeats) { var priceBoxNotAvailableTemplate = $('#priceBoxNotAvailableTemplate').html(); var priceBoxNotAvailable = $(priceBoxNotAvailableTemplate); priceBoxData.isActive = true; priceBoxData.isAvailable = true; ko.applyBindings(priceBoxData, priceBoxNotAvailable[0]); $('#priceBoxNotAvailableTemplate').closest('.col-md-4').prepend(priceBoxNotAvailable); } else { $.ajax({ url: "/custom/IEEEUtilities/getcartsuccess" }).done( function (cartData) { let updateCartLink = function () { if (typeof ko.dataFor($('#top-MetaNav-bar')[0]) === 'undefined') { window.setTimeout(updateCartLink, 50); } else { ko.applyBindings(cartData, $('#ieeePriceBoxAddToCartSuccess')[0]); setupPriceBox(priceBoxData); } } updateCartLink(); } ); } } ); }) </script> </div> <div class="content-thumbnail"> <img id="MainContent_ucContentMetaData_FormView1_MImage1" class="img-thumbnail ieee-content-image" src="/CServer//Image/274C055DAF4142D58EA8DBD67F608B05/HPC_Course_1.png" alt="High Performance Computing: What History Can Teach Us About the Present and Future" /> </div> <ul class="list-group"> <li class="list-group-item"> Course Provider: <strong>Educational Activities</strong> </li> <li class="list-group-item"> Course Number: <strong>EDP680</strong> </li> <li class="list-group-item"> Duration (Hours): <strong>1</strong> </li> <li class="list-group-item"> Credits: <strong>0.1 CEU/ 1 PDH</strong> </li> </ul> </div> </div> </div> </div> <footer class="container-fluid"> <div class="row"> <div id="mgFooter" class="col-xs-12"> <script type="text/javascript"> //Adjust the pull-right class function changePullRight() { if (window.location.href.indexOf("managesectiontimeline") != -1 && document.getElementsByClassName('btn-group pull-right')) { document.getElementsByClassName('btn-group pull-right')[0].style.left = "-235px"; document.getElementsByClassName('btn-group pull-right')[0].style.top = "10px"; } else {} } //Event listener to change the pull-right class on page load window.addEventListener('load', (event) => { //console.log('The page has fully loaded'); changePullRight(); }); //adjust the custom block function setCustomBlock() { if (window.location.href.indexOf("customblockmanage") != -1 && document.getElementsByClassName('panel-info')) { document.getElementsByClassName('panel-info')[0].style.paddingRight = "65px"; document.getElementsByClassName('panel-info')[0].style.paddingLeft = "65px"; document.getElementsByClassName('panel-info')[0].style.border = "0px"; } else {} } //run setCustomBlock on page load window.addEventListener('load', (event) => { //console.log('The page has fully loaded'); setCustomBlock(); }); //Adjust breadcrumbs for the custom block function changeBreadCrumbsCustomBlockDetailsPage() { if (window.location.href.indexOf("customblockdetails") != -1 && document.getElementsByClassName('breadcrumb')) { document.getElementsByClassName('breadcrumb')[0].style.marginBottom = "2rem"; } else {} } //run breadcrumb adjustment function on page load window.addEventListener('load', (event) => { changeBreadCrumbsCustomBlockDetailsPage(); }); //change the width of the custom block on the details page function changeWidthOfCustomBlockDetailsPage() { if (window.location.href.indexOf("customblockdetails") != -1 && document.getElementsByClassName('pb-px')) { document.getElementsByClassName('pb-px')[0].style.paddingRight = "65px"; document.getElementsByClassName('pb-px')[0].style.paddingLeft = "65px"; } else {} } //run the changewidth function on page load window.addEventListener('load', (event) => { changeWidthOfCustomBlockDetailsPage(); }); //add the curation link to the end of the admin > training > content management section function addCurationLink() { var curation_ul = document.getElementById("administer_content_management"); var curation_targetUL = curation_ul.getElementsByClassName("list-unstyled").item(0); var curation_targetItem = curation_targetUL.getElementsByTagName("li").item(9); var curation_li = document.createElement("li"); var curation_a = document.createElement("a"); curation_li.appendChild(curation_a); curation_a.setAttribute("href", "https://sandbox26.mksi-lms.net/CServer/Temp/react/index.html"); curation_a.setAttribute("target", "_blank"); //curation_a.setAttribute("data-toggle", "modal"); //curation_a.setAttribute("data-target", "#curationModal"); curation_targetUL.appendChild(curation_li); curation_a.appendChild(document.createTextNode("Content Curation")); } //allow everything to load otherwise curation link cannot find siblings setTimeout(addCurationLink, 2000); //addCurationLink(); </script> <!-- create the footer --> <style> @font-face { font-family: 'Formata-Light'; src: url("/MResources/Skins/3C4E6C394F41418A835711D76EBE4BFD/fonts/formata_light_woff.woff") format("woff"); font-weight: normal; font-style: normal; } .font-f { font-family: 'Formata-Light'; font-size: 12px; line-height: 18px } .global-footer-container .global-footer { color: #fff; /*background: #006595;*/ padding: 30px 0; /*border-top: 5px solid #fff;*/ } .global-footer-container .global-footer .container { max-width: 950px; width: auto; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } .global-footer-container .global-footer .font-f { font-family: 'Formata-Light'; font-size: 12px; line-height: 18px; } .global-footer-container .global-footer .utilitylinks li { float: left; } .global-footer-container .global-footer ul li { background: none !important; } .global-footer .utilitylinks li a { padding: 0 5px; } @media (max-width: 767px) { .global-footer .utilitylinks li { float: left; width: 100%; margin-bottom: 20px; text-align: center; } } @media(min-width: 768px) { .separator-pipe li { line-height:12px; border-right: 1px solid; padding: 0 8px; } } @media(min-width: 768px) { .separator-pipe li:first-child { padding-left:0; } } @media(min-width: 768px) { .separator-pipe li:last-child { border-right:0; padding-right: 0 } } .separator-pipe li { position: relative; display: inline-block; list-style-type: none; line-height: 12px } .global-footer-container .separator-pipe li { position: relative; display: inline-block; list-style-type: none; line-height: 12px; } .global-footer-container .global-footer .legal-copy { padding-top: 30px; text-align: left; } .global-footer-container .global-footer .legal-copy a { text-decoration: underline; } .global-footer-container .global-footer a, .global-footer a:visited, .footer a, .footer a:visited { color: #fff; } .global-footer ul.utilitylinks{margin:0;padding:0;} .global-footer ul.utilitylinks.verticly li{display:block} .global-footer ul.utilitylinks li{display:inline-block} .global-footer ul.utilitylinks li a{display:block} .global-footer .utilitylinks li:first-child a { padding-left: 0; } footer.container-fluid { background: #006595; } #slideOut { position: fixed; z-index: 5000; width: 300px; height: 800px; /* top: 520px; */ top: 50%; right: -300px; /* Animation */ transition-property: all; transition-duration: .5s; transition-timing-function: cubic-bezier(0, 1, 0.5, 1); } /* Display slideOut */ .showSlideOut { right: 0px !important; } /* slideout tab */ .slideOutTab { margin-top: 50px; position: absolute; left: -40px; height: 200px; width: 40px; -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); box-shadow: 0 5px 15px rgba(0, 0, 0, .5); background: #31708f; border-radius: 15px 0px 0px 15px; cursor: pointer; } .slideOutTab div { text-align: center; position: relative; right: 70px; top: 90px; background: #31708f; width: 180px; -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -o-transform: rotate(270deg); writing-mode: lr-tb; cursor: pointer; } /* modal body for the techslide */ .modal-body-techslide { height: 230px; padding: 20px; } /* for classroom section page */ #gradebook { margin-left: 5%; margin-right: 5%; } #enrollment { margin-left: 5%; margin-right: 5%; } #courseMaterials { margin-left: 5%; margin-right: 5%; } #notification { margin-left: 5%; margin-right: 5%; } </style> <!-- // SlideOut html --> <div id="slideOut"> <!-- // Tab --> <div class="slideOutTab"> <div> <p style="color:#ffffff; font-weight: 600; text-align: center;"> Support / Help</p> </div> </div> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Support and Help</h4> </div> <div class="modal-body-techslide"> <p><a href="https://supportcenter.ieee.org/app/chat/chat_launch" title="Live chat" target="_blank"><i class="fa fa-external-link" aria-hidden="true" target="_blank"></i> Live chat</a></p> <p>In US, call us: <a href="tel:1-800-701-4333">1-800-701-4333</a></br> Outside of US, call us: <a href="tel:1-732-981-0060">1-732-981-0060</a> </p> <p><a href="https://supportcenter.ieee.org/app/ask" title="Question" target="_blank"><i class="fa fa-external-link" aria-hidden="true" target="_blank"></i> Submit a question</a></p> <p><a href="https://www.ieee.org/education/ieee-learning-network/iln-user-guides.html" title="Self Help" target="_blank"><i class="fa fa-external-link" aria-hidden="true" target="_blank"></i> Self help user guides</a></p> </div> <div class="modal-footer"> </div> </div> </div> <script type="text/javascript"> this.$slideOut = $('#slideOut'); // Slideout show this.$slideOut.find('.slideOutTab').on('click', function() { $("#slideOut").toggleClass('showSlideOut'); }); /* This portion will need a little adjustment see the possible fix below */ var myLoadingArea = document.getElementById("loading-area"); myLoadingArea.style.marginLeft = "-60px"; myLoadingArea.style.marginRight = "-60px"; myLoadingArea.style.marginTop = "-20px"; /* possible fix this so that on https://sandbox26.mksi-lms.net/LearnerPage.aspx?Edit=T it doesn't use this style var myLoadingArea = document.getElementById("loading-area"); if(typeof(myLoadingArea) != 'undefined' && myLoadingArea != null){ myLoadingArea.style.marginLeft="-60px"; myLoadingArea.style.marginRight="-60px"; myLoadingArea.style.marginTop="-20px"; } else{ console.log('myLoadingArea was found and changed'); }; */ </script> <!-- Modals --> <div class="modal fade" id="basicModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title" id="myModalLabel">Provide Feedback</h4> </div> <div class="modal-body"> <!-- <form> <div class="form-group">--> <p><span style="font-weight: 100;">You are providing feedback for the following url:</span><span style="color:#FFA500;"> <script type="text/javascript"> var curURL; function getURL() { curURL = window.location.href; } getURL(); document.write(" " + curURL); </script> </span></p> <p>Please provide feedback specific to the issue you are encountering.</p> <!-- <textarea class="form-control" rows="3"></textarea> <div class="form-group"> <label for="exampleInputFile">Provide a screen capture if you have one.</label> <input type="file" id="exampleInputFile"><hr> <p class="help-block">We will be in touch as soon as possible.</p> </div> </div> <button type="submit" class="btn btn-default">Submit</button> </form> --> <p>Form here</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Submit</button> </div> </div> </div> </div> <div class="modal fade" id="jiraModal" tabindex="-1" role="dialog" aria-labelledby="jiraModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title" id="jiraModalLabel">Jira Modal</h4> </div> <div class="modal-body"> <!-- <form> <div class="form-group"> <p>Please provide specific ticket information.</p> <textarea class="form-control" rows="3"></textarea> <div class="form-group"> <label for="exampleInputFile">Provide a screen capture if you have one.</label> <input type="file" id="jiraInputFile"><hr> <p class="help-block">You are creating an official Jira ticket in our help system.</p> </div> </div> <button type="submit" class="btn btn-default">Submit</button> </form> --> <p>Form here</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Submit</button> </div> </div> </div> </div> <div class="modal fade" id="curationModal" tabindex="-1" role="dialog" aria-labelledby="curationModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"> × </button> <h4 class="modal-title" id="curationModalLabel">Curation Modal</h4> </div> <div class="modal-body"> <!-- Forms break the page -- need to fix this <form> <div class="form-group"> <p>Please provide specific ticket information.</p> <textarea class="form-control" rows="3"></textarea> <div class="form-group"> <label for="exampleInputFile">Provide a screen capture if you have one.</label> <input type="file" id="jiraInputFile"><hr> <p class="help-block">You are creating an official Jira ticket in our help system.</p> </div> </div> <button type="submit" class="btn btn-default">Submit</button> </form> --> <p>Form here</p> <input type="file" id="myFile" name="filename"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"> Close </button> <intput type="submit" class="btn btn-primary">Submit</button> </div> </div> </div> </div> <div class="global-footer-container"> <!-- Global Footer Content ============================================= --> <div class="global-footer"> <div class="container"> <div class="row"> <div class="col-xs-12 footer-links font-f" style="width:101%;"> <!-- Utility Links Content ============================================= --> <ul id="WHJXJCHSZSXEASDXTS" class=" utilitylinks separator-pipe"> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://iln.ieee.org">Home</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://www.ieee.org/sitemap.html">Sitemap</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://www.ieee.org/about/contact.html">Contact & Support</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://www.ieee.org/accessibility-statement.html">Accessibility</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://www.ieee.org/about/corporate/governance/p9-26.html">Nondiscrimination Policy</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="http://www.ieee-ethics-reporting.org">IEEE Ethics Reporting</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://www.ieee.org/security_privacy.html">IEEE Privacy Policy</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 26px"> <a href="https://www.ieee.org/site_terms_conditions.html" target="_blank">Terms & Disclosures</a> </div> </li> <li class="utilitylinks-default-color" style="color:"> <div style="min-width: 30px"> <a href="https://innovationatwork.ieee.org/ieee-learning-network-feedback-form/">Feedback</a> </div> </li> </ul> <!-- #utility-links-content end --> </div> <div class="col-xs-12 legal-copy font-f"> <div class="cq-dd-paragraph"> <div class="rte text parbase"> <i></i>© Copyright <span id="ieeecpyr"></span> IEEE - All rights reserved. A public charity, IEEE is the world's largest technical professional organization dedicated to advancing technology for the benefit of humanity.<br /> </div> </div> </div> </div> </div> </div> <!-- #global-footer-content end --> </div> <script> document.querySelector('#ieeecpyr').textContent = (new Date()).getFullYear() </script> <script src="https://s3-us-west-2.amazonaws.com/ieeeshutpages/gdpr/settings.js"></script> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script> <!--script> window.addEventListener("load", function(){ window.cookieconsent.initialise(json) }); </script--> <!-- v ieee cookie banner v --> <script src="https://cmp.osano.com/AzyzptTmRlqVd2LRf/ef8394fc-8d76-4cf2-a05c-a6d2430d8b22/osano.js"></script> <link rel="stylesheet" href="https://cookie-consent.ieee.org/ieee-cookie-banner.css" type="text/css"/> <!-- ^ ieee cookie banner ^ --> <!-- Marketo Munchkin Code --> <script src="//app-ab24.marketo.com/js/forms2/js/forms2.min.js"></script> <script src="https://s3.amazonaws.com/ieee-mkto-cross-domain/enterprise-page-code.js"></script> <script type="text/javascript" src="https://cdns.gigya.com/js/gigya.js?apikey=3_ihC9k-currG51rxnDiN6bhiAzQy1-4zw1zOtNOrZ11jAxUhFRKPUrVKs553Kv7px "></script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KKPCDLN');</script> <!-- End Google Tag Manager --> <!-- Global site tag (gtag.js) - Google Analytics IEEE00122-9--> <script async src="https://www.googletagmanager.com/gtag/js?id=G-3G6FRKPY2X"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-3G6FRKPY2X'); </script> <!-- End of IEEE00122-9 --> </div> </div> </footer> <script src="/bundle/bottomjs?v=hrD6uxIl83nj7TwmmBOkXWUVTNhSfPalsrvUv2soKeQ1"></script> <script> $("#skipToMainContent").click(function () { $('#content').focus(); }); </script> </form> </body> </html> <script language="javascript" type="text/javascript">function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function () { if (oldonload) { oldonload(); } func(); } } }; addLoadEvent(function () { var logger = new Meridian.Analytics.ESLogger(); logger.sendAnalytics(); });</script>