<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" >

<channel><title><![CDATA[quantum|hpc - Blog]]></title><link><![CDATA[http://albertdefusco.weebly.com/blog]]></link><description><![CDATA[Blog]]></description><pubDate>Thu, 09 Apr 2020 06:07:47 -0700</pubDate><generator>Weebly</generator><item><title><![CDATA[Cluster Strategies part 1: HPC in a Box]]></title><link><![CDATA[http://albertdefusco.weebly.com/blog/cluster-strategies-part-1-hpc-in-a-box]]></link><comments><![CDATA[http://albertdefusco.weebly.com/blog/cluster-strategies-part-1-hpc-in-a-box#comments]]></comments><pubDate>Tue, 19 Apr 2016 19:36:50 GMT</pubDate><category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://albertdefusco.weebly.com/blog/cluster-strategies-part-1-hpc-in-a-box</guid><description><![CDATA[Here at SaM we are going through beginning to redesign the cluster and I'm going to use this blog to document my experiences. My goal is to develop a strategy to deploy and maintain High Performance Computing clusters using open-source tools. Expect several posts in this series on topics like cluster design, provisioning, batch queues and monitoring.The virtual test clusterBy building an HPC cluster entirely in Virtual Box I can very efficiently test software components and configurations and re [...] ]]></description><content:encoded><![CDATA[<div class="paragraph" style="text-align:left;"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400">Here at <a href="http://www.sam.pitt.edu">SaM</a> we are going through beginning to redesign the cluster and I'm going to use this blog to document my experiences. My goal is to develop a strategy to deploy and maintain High Performance Computing clusters using open-source tools. Expect several posts in this series on topics like cluster design, provisioning, batch queues and monitoring.<br /><br /><strong>The virtual test cluster</strong><br />By building an HPC cluster entirely in <a href="https://www.virtualbox.org/">Virtual Box</a> I can very efficiently test software components and configurations and recover from disasters or misconfiguration in a safe and, more importantly, reproducible environment.<br /><br />I this post I will describe the 3 <font color="#2a2a2a"><strong>Core VMs</strong></font> that will for my HPC cluster and walk through how I configure them. These 3 VMs are the only systems where I will install and configure the operating system by hand. Login nodes and compute nodes will be provisioned later and in an automated fashion. The <strong><span id="selectionBoundary_1421955506777_3338872915338058">&#65279;</span><span id="selectionBoundary_1421955506805_15200500249867588">&#65279;</span>Core VMs<span id="selectionBoundary_1421955490686_3803226873575978">&#65279;</span><span id="selectionBoundary_1421955489345_31415047423174824">&#65279;</span><span id="selectionBoundary_1421955489322_3848181021461894">&#65279;</span></strong><span id="selectionBoundary_1421955506804_9053556350293784">&#65279;</span><span id="selectionBoundary_1421955506776_851107666538309">&#65279;</span> are</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><ul><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#508d24"><strong>ldap</strong><br /><font color="#2a2a2a">Many HPC sites use LDAP for user authentication and I will demonstrate a very basic system.</font></font></span></span></span></span></span></span></span></span></span></span></span></span></span></li><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#24678d"><strong>vault</strong><br /><font color="#2a2a2a">This my shared file system for the cluster. Typically, HPC clusters employ NFS or Lustre network file systems to store users' home directories, application binaries or they are used to provide fast scratch.</font></font></span></span></span></span></span></span></span></span></span></span></span></span></span></li><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#8d7824"><strong><font color="#8d2424">head</font></strong><br /><font color="#2a2a2a">T</font><font color="#2a2a2a">he head node will provision (boot) compute nodes and login nodes and maintain a consistent configuration across all nodes in my cluster.</font> <font color="#2a2a2a">In future posts I will document my designs and implementations of systems to perform these tasks.</font></font></span></span></span></span></span></span></span></span></span></span></span></span></span></li></ul><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#8d7824"><font color="#2a2a2a"><br /><strong>Host software requirements</strong><br />The host machine (laptop, desktop, etc.) is where Virtual Box will be running. I've used both my MacBook Pro (13-inch Late 2011; 8 GB RAM; Core i7 4 hyperthreads) and my linux desktop (Intel E5507 4 hyperthreads, 12 GB RAM, Ubuntu 14.04). Running the <strong>Core VMs</strong> listed above simultaneously on each of these systems has posed no performance issues.</font></font></span></span></span></span></span></span></span></span></span></span></span></span></span><ul><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#8d7824"><font color="#2a2a2a">I'm currently using <a target="_blank" href="https://www.virtualbox.org/wiki/Downloads">VirtualBox 4.3.20</a>. It is also necessary to install the <a target="_blank" href="http://download.virtualbox.org/virtualbox/4.3.20/Oracle_VM_VirtualBox_Extension_Pack-4.3.20-96996.vbox-extpack">Virtual Box Extension Pack</a>. We will need it for a later post.</font></font></span></span></span></span></span></span></span></span></span></span></span></span></span></li></ul><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#8d7824"><font color="#2a2a2a"><br /><strong>VirtualBox networking</strong><br />When I started this project getting the networks configured correctly was a major source of confusion and frustration. I will try to explain very carefully how I have the networks configured and what they are intended to do.<br />Each of the three <strong>Core VMs</strong> will connect to three independent networks. They are described here.</font></font></span></span></span></span></span></span></span></span></span></span></span></span></span><ul><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#2a2a2a"><strong>internal</strong></font> (10.201.x.x)<br />This network will be used for all communication between VMs. As I will show in a later post the compute nodes, which are the deepest part of my cluster, will only connect to the <strong>internal</strong> network.</span></span></span></span></span></span></span></span></span></li></ul><ul><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#2a2a2a"><strong>NAT</strong> (10.0.3.x)<br />This network forwards traffic from the outside world (beyond my host) into VMs. What this means is that I can "browse the web" from a VM.</font></span></span></span></span></span></span></span></span></span></li><li><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><span style="font-weight:400"><font color="#2a2a2a"><strong>host </strong>(192.168.56.x)<br />This network allows my host to SSH directly into a VM. It will also allow the host to view web services running on the VMs.</font></span></span></span></span></span></span></span></span></span></li></ul></div>  <span class='imgPusher' style='float:right;height:0px'></span><span style='display: table;width:408px;position:relative;float:right;max-width:100%;;clear:right;margin-top:15px;*margin-top:30px'><a><img src="http://albertdefusco.weebly.com/uploads/4/0/1/3/40136995/4119067.png?398" style="margin-top: 10px; margin-bottom: 10px; margin-left: 0px; margin-right: 10px; border-width:0; max-width:100%" alt="Picture" class="galleryImageBorder wsite-image" /></a><span style="display: table-caption; caption-side: bottom; font-size: 90%; margin-top: -10px; margin-bottom: 10px; text-align: center;" class="wsite-caption"></span></span> <div class="paragraph" style="text-align:justify;display:block;"><span style='text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); '><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><br /><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><font color="#2a2a2a">To configure the <strong>internal</strong> and <strong>host</strong>  networks open the VirtualBox preference panel. It is available from the  main VirtualBox menu on Mac OS X and from the File on Linux. You should  see a control panel like this. I have selected <strong>Network</strong> panel and then the <strong>Host-only Networks</strong> tab.<br /></font></span></span></span></span></span></span></span></span><br />Currently, I don't have any<strong> Host-only Networks</strong> configured. I'll make the host network first by clicking the <em>plus</em> icon on the right. This will create the vboxnet0 network entry. To edit the network I click on the screwdriver icon.<br /></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">For the <strong style="">host</strong> network (vboxnet0) I set the following. I don't set the IPv6 fields.<br /><br />IPv4 Address:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.56.1<br />IPv4 Network Mask 255.255.255.0<br /><br />To make the <strong>internal</strong> network click the <em>plus</em> icon again to generate vboxnet1 and click on the screwdriver. I set the following information.<br /></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br /><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">IPv4 Address:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.201.0.1<br />IPv4 Network Mask 255.255.0.0<br /><br />I don't enable the DHCP services for either the <strong>host</strong> or <strong>internal </strong>networks.<br /></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div> <hr style="width:100%;clear:both;visibility:hidden;"></hr>  <span class='imgPusher' style='float:right;height:0px'></span><span style='display: table;width:479px;position:relative;float:right;max-width:100%;;clear:right;margin-top:17px;*margin-top:34px'><a><img src="http://albertdefusco.weebly.com/uploads/4/0/1/3/40136995/4725302.png?463" style="margin-top: 5px; margin-bottom: 10px; margin-left: 0px; margin-right: 10px; none; max-width:100%" alt="Picture" class="galleryImageBorder wsite-image" /></a><span style="display: table-caption; caption-side: bottom; font-size: 90%; margin-top: -10px; margin-bottom: 10px; text-align: center;" class="wsite-caption"></span></span> <div class="paragraph" style="text-align:justify;display:block;"><span style='text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); '><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><span style="text-decoration:none; font-style:normal; font-weight:400; color:rgb(68, 68, 68); "><strong>The Core VMs<br /></strong>Now we are ready to create the three <strong>Core VMs </strong>that will form the backbone of our cluster. To begin click the <strong>New Botton</strong> on the VirtualBox main screen. I've selected 64bit Red Hat Linux and named this VM <strong><font color="#508d24">ldap</font>.</strong> Here are the details of my VM.<br /><strong>Memory: </strong>512 MB<br /><strong>Disk: </strong>VDI, Dynamically Allocated, 80 GB (I doubt the VM harddrive will ever get that big)<br /><br />You will now have an entry in your VM list for <font color="#508d24"><strong style="">ldap</strong></font>. Open the settings dialog box and click on the <strong>Network</strong> to enable the network interfaces. We are going to configure 3 Adapters for this VM. It would also be a good idea to take note of the MAC Addresses, we'll need them later. Here are my three interfaces.<br /><br /><strong>Adapter 1 </strong>(<strong>internal </strong>network)<br />Attached to: Host-only Adapter<br />Name: vboxnet1<br /><br /><strong>Adapter 2</strong> (<strong>NAT</strong> network)<br />Attached to: NAT<br /><br /><strong>Adapter 2</strong> (<strong>host</strong> network)<br />Attached to: Host-only Adapter<br />Name: vboxnet0<br /><br /></span></span></span></span></div> <hr style="width:100%;clear:both;visibility:hidden;"></hr>]]></content:encoded></item></channel></rss>