{"id":673,"date":"2020-05-18T12:00:00","date_gmt":"2020-05-18T19:00:00","guid":{"rendered":"http:\/\/letsbuildroboticswithshadow8472.com\/?p=673"},"modified":"2020-05-18T02:59:18","modified_gmt":"2020-05-18T09:59:18","slug":"beowulf-cluster-part-2-not-a-beowulf-cluster-yet","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2020\/05\/18\/beowulf-cluster-part-2-not-a-beowulf-cluster-yet\/","title":{"rendered":"Beowulf Cluster: Part 2: Not a Beowulf Cluster Yet"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472 and today, I learned a lot toward the next step in my project and backed out at the last minute. Let&#8217;s get started!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You know the thing about clusters: it takes some overhead to run them? The computers I&#8217;m working with in my Third Workshop care package don &#8216;t have much CPU to begin with. Special thanks to kevrocks67 on the EngineerMan Discord server for getting that point through my head and pointing me in the right direction: subnetting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My understanding of subnetting is lacking to say the least. Perhaps if I back up and just tell the story.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This week saw most of the parts I need for my cluster come in. Shopping for the Pi 4, I compared different sellers and chose one to go along with a separate heat sink case I picked out from a different distributor. I managed to save a little money by assembling my own kit instead of getting one that included some small, aluminum heat sinks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the case arrived, it came with some thick thermal pads. Yeah, those won&#8217;t be separating once the case is fully installed and operational temperatures melt the pads into place or they are just sticky. I did a dry fit and it doesn&#8217;t look like the case will operate correctly without them. In the meantime, I noticed the camera cable slot and the similar-looking display slot will likely be inaccessible once I assemble the case, though the GPIO pins will still be open.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My father picked up a couple outdoor grade 3-way power spliters for power management. The minicomputers I&#8217;m working with have bulky transformers right on the plug, and they are such a shape as to make it difficult to creatively arrange more than three on a seven-plug power strip.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Ethernet cable we picked up was paid for with a little effort. One of my church members was wiring up the church a while back for Cat6, and he has some left on the spool. I stayed topside while my father donned a jumpsuit and finished running the cable to just below the office, where he cut the cable. There was enough to reach the office, but that was it: maybe about 30 feet max: more than double my very rough estimation of what I&#8217;d need. A package of Cat6 ends and a crimper will see me learning yet another new skill in the near future.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">About the only piece I don&#8217;t have picked out yet is a board to mount things on. It doesn&#8217;t look like the heat sink case has any good places to mount, though the switch and minicomputers do.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The next logical thing to do is assemble an early prototype! One control node and one worker node should be a good start&#8230; if only I could get the pi to boot from an SD. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lacking the desire to format any drives where a valued drive can possibly be hit in the crossfire, paired with the inability to read SD cards on anything but my laptop, I tried using an app on my tablet to flash a card. For one reason or another, I wasn&#8217;t able to boot. I suspect I need root privileges to properly format anything with Android, unless I want to format as internal or removable storage. Lacking access to an old phone nobody has no qualms with me &#8220;voiding the warranty,&#8221; a multi-SD reader is on order.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Speaking of SD readers, turns out each of the five little helpers has one built in. I&#8217;ll be using one of those along with a live USB for formatting fun in the near future with no chance of fireworks at the end, just as soon as I figure out why they look exactly the same with <em>lsblk -l<\/em>. I suspect it&#8217;s got its own SD card like storage device in there. Ironically enough, I suppose the difference should make a slip up of the same calibur nearly impossible this go around. Nevertheless, I still want to practice isolation of formatting whenever possible. In either case, what I am trying to think of as equivalent to a hard drive is not labeled <em>sdx<\/em> anymore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Somewhere, I made the switch in short-term project aim from cluster to subnet to reclaim some of that overhead. I still want to end up with a cluster for the experience, but for now my token effort among token efforts will be more efficient with less overhead. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To help with overhead costs, I found a site that compares lightweight distros. <a rel=\"noreferrer noopener\" href=\"https:\/\/thishosting.rocks\/best-lightweight-linux-distros\/\" target=\"_blank\">Thishosting.rocks\/best-lightweight-linux-distros\/<\/a> They have a sortable chart of about 30 distros and their rough minimum system requirements, including RAM, CPU, and space on disk. Folding@Home is likely to use CPU above anything else, I suppose, and RAM can&#8217;t be easily expanded, so my dump stat is disk space.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I optimized for CPU, and found Debian was a near-perfect choice. Most, if not all, my Linux experience is in Debian or a decedent of Debian. The required RAM is one of the lower rankings while still needing an almost non-existent CPU. I even already have the install media plugged into the thing and booted! Though I may want to look into a server installation option.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In terms of mentally tangible progress toward a prototype, I set the Pi 4 aside for the moment and brought in BlinkyPie, my Pi 3B+. My goal: turn a Raspberry Pi into a router. I&#8217;ll know everything works when I have Internet access on the minicomputer that is otherwise not connected through any other means.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I viewed a few networking videos that were either dated, covering basic material I already knew, had bad audio quality, or showed what to do without giving any theory behind their actions. I eventually settled on a clear, step by step tutorial on at <a rel=\"noreferrer noopener\" href=\"\/\/linuxhint.com\/raspberry_pi_wired_router\/\" target=\"_blank\">Linuxhint.com\/raspberry_pi_wired_router<\/a> that does not explain its actions, but the steps are short enough that I can seek out my own explanations as I go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The tutorial starts with installing Raspian and getting SSH going. As anyone who&#8217;s been following my blog long term knows, SSH was a real pain for me to figure out, and if I didn&#8217;t know what I was doing, it might as well be a small element of a magic ritual to start over if things fail. Since I intended to work with a Pi that was already established, I glazed over those steps and started in on configuring the network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The whole reason this project of a subnet is possible with the hardware I have is because the Pi can participate in two networks at once: one via Ethernet, and one via WiFi. To make a long story short: this procedure requires the Pi establish itself in a special IP address for the router, implying a static IP. I sometimes take this Pi elsewhere (or at least its chip), and I don&#8217;t want to forget and accidentally mess up someone&#8217;s network, so I backed out in favor of waiting on a properly running Pi 4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As always, this project is evolving as I work on it. The Gigabit Ethernet speeds I thought I would use for a cluster won&#8217;t be necessary for the time being, as there&#8217;s a slightly lower bottleneck at the Pi&#8217;s WiFi network adapter. Next week should be interesting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Final Question: When was your last project where you lowered the specs and found yourself overbuilt?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472 and today, I learned a lot toward the next step in my project and backed out at the last minute. Let&#8217;s get started! You know the thing about clusters: it takes some overhead to run them? The computers I&#8217;m working with in my Third Workshop care &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2020\/05\/18\/beowulf-cluster-part-2-not-a-beowulf-cluster-yet\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Beowulf Cluster: Part 2: Not a Beowulf Cluster Yet&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[2,14],"tags":[],"class_list":["post-673","post","type-post","status-publish","format-standard","hentry","category-linux","category-networking"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=673"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/673\/revisions"}],"predecessor-version":[{"id":674,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/673\/revisions\/674"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}