<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Hi, I&#39;m Sean 🚀 on Sean Smith 🚀</title>
    <link>https://swsmith.cc/</link>
    <description>Recent content in Hi, I&#39;m Sean 🚀 on Sean Smith 🚀</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 23 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://swsmith.cc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How to Climb Mt Blanc 🇫🇷</title>
      <link>https://swsmith.cc/posts/mt-blanc.html</link>
      <pubDate>Mon, 23 Sep 2024 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/mt-blanc.html</guid>
      <description>Imagine you show up in Chamonix, France with no gear and a desire to climb the highest peak in Europe. You have the skills from previous glacier climbs like Mt Hood and Mt. Baker but you don&amp;rsquo;t have your alpine climbing gear. That&amp;rsquo;s where we found ourselves at the start of September 2024. In three weeks we managed to buy/rent all the gear, setup accommodations in the mountain huts and summit on September 22nd without a guide.</description>
    </item>
    
    <item>
      <title>Starlink 📡</title>
      <link>https://swsmith.cc/posts/starlink.html</link>
      <pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/starlink.html</guid>
      <description>We recently installed Starlink mini as a permanent installation in our van. Here&amp;rsquo;s what we learned:
What is Starlink? Starlink is a satellite internet constellation operated by SpaceX. It provides internet access to wherever we are in the van both in motion and stationary. In rural Alaska we often don&amp;rsquo;t have cell service at all and so installing the Starlink dish on the van was vital for maintaining connectivity. We&amp;rsquo;ve used the Generation 2 before and the Generation 3 dish but didn&amp;rsquo;t install either permanently.</description>
    </item>
    
    <item>
      <title>How to fly to Alaska 🇺🇸</title>
      <link>https://swsmith.cc/posts/fly-to-alaska.html</link>
      <pubDate>Mon, 17 Jun 2024 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fly-to-alaska.html</guid>
      <description>How to fly to Alaska This is a story and hopefully some useful insights on those looking to fly up from the lower 48 to Alaska in their own airplane. Most of the information I gained from Ted Waltman&amp;rsquo;s excellent website https://fly2ak.com/, so check that out first. We flew up from Seattle Washington to Anchorage over the course of 5 days and took the Alcan highway route, our route of flight was:</description>
    </item>
    
    <item>
      <title>GPU Memory Calculator 🧮</title>
      <link>https://swsmith.cc/posts/gpu-memory.html</link>
      <pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/gpu-memory.html</guid>
      <description>GPU Memory needs scale up based on the size of the model. To quickly calculate the memory required for a model you can use the calculators below.
 For inference memory required is typically 2 x the number of parameters, this is because each parameter is typically two bytes (FP16). So a 7B parameter model takes 14GB.
  For training in mixed precision (FP16) it&amp;rsquo;s typically 18x the number of parameters plus activations, this is typically 22-32x the number of parameters.</description>
    </item>
    
    <item>
      <title>AWS EC2 Topology Graph 📊</title>
      <link>https://swsmith.cc/posts/ec2-topology.html</link>
      <pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/ec2-topology.html</guid>
      <description>Click for Demo!
What is the EC2 Topology API? AWS Instance Topology gives you details on the interconnect between ec2 instances. It&amp;rsquo;s helpful to determine if all the nodes are co-located on the same spine and can even be used when trying to make scaling decision for large ML training runs or HPC jobs.
To call the API, you&amp;rsquo;ll need at least aws cli version 2.13.36. You can check the version with:</description>
    </item>
    
    <item>
      <title>EFA Best Practices 👾</title>
      <link>https://swsmith.cc/posts/efa-best-practices.html</link>
      <pubDate>Tue, 12 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/efa-best-practices.html</guid>
      <description>Elastic Fabric Adaptor (EFA) is is like a race car, it enables super-fast, os-bypass, high speed networking when working properly but quickly breaks down (aka falls back to TCP) when it isn&amp;rsquo;t configured properly. The following guide is some best practices when working with the EFA drawn on my 6 years of experience working with it.
First some basics:  What is EFA and how is it different than Infiniband?</description>
    </item>
    
    <item>
      <title>GPU Monitoring with Grafana 📊</title>
      <link>https://swsmith.cc/posts/grafana-slurm.html</link>
      <pubDate>Thu, 26 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/grafana-slurm.html</guid>
      <description>Grafana is an open source tool that allows us to create dashboards and monitor our cluster. In the following guide we&amp;rsquo;ll show you how to setup Grafana, Prometheus, Slurm exporter and DCGM Exporter to monitor a cluster. This will help you answer questions like:
 how many jobs/instances are running CPU utilization GPU Utilization Memory usage EFA (Network) Traffic Disk iops  We&amp;rsquo;ll setup the following exporters but don&amp;rsquo;t limit yourself to just these.</description>
    </item>
    
    <item>
      <title>Containers with Slurm 🚢</title>
      <link>https://swsmith.cc/posts/containers-aws-parallelcluster.html</link>
      <pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/containers-aws-parallelcluster.html</guid>
      <description>What are containers? Containers are a great way to package software, they wrap the runtime of the software up with the application&amp;rsquo;s code. This allows you to pull down optimized software containers and run them out of the box without all the complications of compiling them for a new system. In this blog we&amp;rsquo;ll focus on the nvidia container repository (ngc) since they have optimized containers for applications like gromacs, nemo, and BERT.</description>
    </item>
    
    <item>
      <title>Email Notifications with Slurm ✉️</title>
      <link>https://swsmith.cc/posts/setup-email-notifications.html</link>
      <pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/setup-email-notifications.html</guid>
      <description>Update (5/23/24): the author of this plugin, Neil Munday published a recipe on AWS HPC Recipes. Please see that for the most up to date guidance. Slurm has an option to send emails when your job changes status. This is useful to get notifications when your job completes. For example in my sbatch script I could add:
#SBATCH --mail-user=sean@swsmith.cc After the job completes, you&amp;rsquo;ll get an email:
You can include useful information such as stdout, stderr, runtime ect.</description>
    </item>
    
    <item>
      <title>Slurm PAM Adopt 👨‍👨‍👦</title>
      <link>https://swsmith.cc/posts/slurm-pam-adopt.html</link>
      <pubDate>Fri, 04 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-pam-adopt.html</guid>
      <description>Slurm PAM &amp;ldquo;adopt&amp;rdquo; allows you to restrict users to login to only to compute nodes where they have running jobs. It &amp;ldquo;adopts&amp;rdquo; the process that the user is running on the node in order to login. If they don&amp;rsquo;t have a job running they&amp;rsquo;ll get permission denied.
There is some nuance to this, for example should users be allowed to ssh into a node they&amp;rsquo;re only partially using? This behavior can be configured with Options in the command.</description>
    </item>
    
    <item>
      <title>Link Active Directory to IAM Identity Center 👨‍👨‍👦</title>
      <link>https://swsmith.cc/posts/link-iam-to-ad.html</link>
      <pubDate>Thu, 03 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/link-iam-to-ad.html</guid>
      <description>In this blogpost we&amp;rsquo;ll describe how to manager POSIX user identities through IAM identity center by setting up propagation to Active Directory. This can be used to create user identities on your HPC cluster without going through the pain of creating them in Active Directory (which requires windows).
This also allows you to link the IAM user with their POSIX user and give users a 1-click login onto these instances using SSM RunAsUser support.</description>
    </item>
    
    <item>
      <title>Slurm Multi-Cluster Mode 📡</title>
      <link>https://swsmith.cc/posts/slurm-multi-cluster.html</link>
      <pubDate>Mon, 31 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-multi-cluster.html</guid>
      <description>Slurm supports a feature called multi-cluster mode this allows you to submit jobs across multiple clusters, for example you could have one cluster on-prem, another in the cloud, or you could have clusters in two different regions, or you could have an x86 cluster and an aarch64 one. These are all scenarios where it might make sense to have two separate clusters, both running an independent slurmctld processes but which allow users to submit between the different clusters.</description>
    </item>
    
    <item>
      <title>HPC7g instances in AWS ParallelCluster 👽</title>
      <link>https://swsmith.cc/posts/hpc7g-parallelcluster.html</link>
      <pubDate>Mon, 10 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/hpc7g-parallelcluster.html</guid>
      <description>HPC7g instances are the first ARM based HPC instances in AWS. These instances combine excellent per-core pricing, deep capacity pools and 200 GB EFA networking in order to create the perfect HPC instance for large-scale cost-effective simulations. There&amp;rsquo;s three different sizes:
   Instance Size Cores Memory (GiB) EFA Network Bandwidth Price (On-Demand in us-east-1)     hpc7g.4xlarge 16 128 200 GBps 1.683   hpc7g.8xlarge 32 128 200 GBps 1.</description>
    </item>
    
    <item>
      <title>How to Become a Pilot ✈️</title>
      <link>https://swsmith.cc/posts/pilot.html</link>
      <pubDate>Thu, 08 Jun 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/pilot.html</guid>
      <description>Flying is the most rewarding skills you can acquire; it&amp;rsquo;s the perfect mix between knowledge and skill. You have to be able to make decisions quickly and think on your feet, in addition to being able to study complex systems, understand airspace and complex approaches. The U.S. has a phenomenal system for general aviation. As a private pilot you can basically fly anywhere, during the day, at night, through the weather (with an additional rating).</description>
    </item>
    
    <item>
      <title>Setup Amazon FSx for OpenZFS with AWS ParallelCluster 🗂</title>
      <link>https://swsmith.cc/posts/fsx-openzfs.html</link>
      <pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fsx-openzfs.html</guid>
      <description>FSx OpenZFS is a new filesystem offering that provides a managed OpenZFS filesystem. In previous blogposts we&amp;rsquo;ve showed how to use FSx Lustre, FSx Netapp Ontap and EFS with AWS ParallelCluster. In this blogpost we&amp;rsquo;ll show you how to create and mount OpenZFS filesystems on ParallelCluster. Before we start, when should you use OpenZFS?
So when should you use FSx OpenZFS?  NFS compliant filesystem Fast filesystem performance for 30% cheaper than FSx Lustre Built in support for backups Multi-AZ support  So when shouldn&amp;rsquo;t you use FSx OpenZFS?</description>
    </item>
    
    <item>
      <title>Static Websites with Hugo and Amplify ♥️</title>
      <link>https://swsmith.cc/posts/hugo-amplify.html</link>
      <pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/hugo-amplify.html</guid>
      <description>It should be no secret that I ♥️ Hugo and Amplify. Combined I&amp;rsquo;ve built out nearly a dozen websites using these tools, including hpcworkshops.com, pcluster.cloud, thefiftyproject.com and of course this website. These websites are hosted on AWS Amplify for a grand total of $.30/month with no server maintenance ever needed. Deployments are done using Github actions and new changes are automatically built and published when new commits are pushed to Github.</description>
    </item>
    
    <item>
      <title>Setup FlexLM License Server 🪪</title>
      <link>https://swsmith.cc/posts/flexlm.html</link>
      <pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/flexlm.html</guid>
      <description>FlexLM is the most popular license server for HPC workloads. It&amp;rsquo;s the license server for applications like Siemens StarCCM+, Ansys Fluent, Abaqus, ect.
In the following guide we&amp;rsquo;ll setup a license server that can be used with FlexLM (or any other linux-based licensing client). Once you have the licensing setup you can setup license tracking in Slurm following the blogpost Setup Licensing with AWS ParallelCluster and Slurm 🪪.
Instance Type FlexLM has pretty minor compute requirements, just 2 cores and 4 GB of memory, so it can be easily run on a small (cheap) instance like the t3.</description>
    </item>
    
    <item>
      <title>Cost Explorer with AWS ParallelCluster 📊</title>
      <link>https://swsmith.cc/posts/cost-explorer-pcluster.html</link>
      <pubDate>Thu, 06 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/cost-explorer-pcluster.html</guid>
      <description>Cost Explorer allows you to track cost at the cluster, queue, user and job level. It does this by tracking tags applied automatically to EC2 Instances launched with parallelcluster.
This gives users a view of exactly how much a cluster costs overtime, it tracks:
 EC2 Instances EBS Volumes FSx Lustre Volumes EFS Volumes Data Transfer  Setup Ok so how do we set this up?
 Activate the parallelcluster:cluster-name tag in the Billing Dashboard &amp;gt; Cost Allocation Tags  Update: as of June 8th 2022, you can activate these tags programmatically from the AWS API, CLI or SDK.</description>
    </item>
    
    <item>
      <title>Setup S3 Mountpoint with AWS ParallelCluster 🗂</title>
      <link>https://swsmith.cc/posts/s3-mountpoint-aws-pcluster.html</link>
      <pubDate>Fri, 24 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/s3-mountpoint-aws-pcluster.html</guid>
      <description>S3 Mountpoint is a new solution that provides a way to mount an S3 bucket as if it&amp;rsquo;s a shared filesystem. This gives several advantages:
 Allows using applications that don&amp;rsquo;t support S3 API&amp;rsquo;s Easy interface for users to browse files in S3  So what are the downsides?
 Read-only in alpha GA version released March 2023 Non-POSIX compliant. This means operations such as metadata changes, file-locking ect. are not supported.</description>
    </item>
    
    <item>
      <title>Slurm REST API 📡</title>
      <link>https://swsmith.cc/posts/slurm-rest-api.html</link>
      <pubDate>Wed, 08 Mar 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-rest-api.html</guid>
      <description>The Slurm REST API can be used to programmatically submit and monitor jobs on the cluster.
Step 1 - Setup Slurm Accounting First setup Slurm Accounting following the instructions.
Step 2 - Create a Security Group to allow inbound API Requests By default, your cluster will not be able to accept incoming HTTPS requests to the REST API. You will need to create a security group to allow traffic from outside the cluster to call the API.</description>
    </item>
    
    <item>
      <title>FSx Lustre as a Cache for S3 🗃️</title>
      <link>https://swsmith.cc/posts/fsx-lustre-cache.html</link>
      <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fsx-lustre-cache.html</guid>
      <description>Overview FSx Lustre is a powerful filesystem for workloads that require low-latency, parallel access, however this comes at a cost, sometimes 5 x greater than S3. To avoid paying to keep all your data in Lustre, you can setup a link between S3 and FSx Lustre. When data is requested it&amp;rsquo;s pulled from S3 and &amp;ldquo;cached&amp;rdquo; in Lustre and when it&amp;rsquo;s no longer needed it&amp;rsquo;s evicted from Lustre and the only copy sits in S3.</description>
    </item>
    
    <item>
      <title>LED Aviation Sectional 🗺️</title>
      <link>https://swsmith.cc/posts/aviation-led-sectional.html</link>
      <pubDate>Tue, 14 Feb 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/aviation-led-sectional.html</guid>
      <description>This blog is typically about AWS and HPC however once and a while I get to talk about other stuff like my 50 States Project or this Aviation Sectional I built.
The idea was to build a map, known in aviation parlance as a sectional, that illuminated airports based on the current weather condition. In aviation there&amp;rsquo;s different flight rules that apply when conditions are below certain thresholds. I&amp;rsquo;ll save you all the details but just know green = good, blue is less so, red is more work and purple means you probably shouldn&amp;rsquo;t be flying a small aircraft.</description>
    </item>
    
    <item>
      <title>Slurm Login Node with AWS ParallelCluster 🖥</title>
      <link>https://swsmith.cc/posts/slurm-login-aws-parallelcluster.html</link>
      <pubDate>Fri, 20 Jan 2023 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-login-aws-parallelcluster.html</guid>
      <description>Update: This has been written up on the ParallelCluster Wiki: ParallelCluster: Launching a Login Node
Some reasons why you may want to use a Login Node:
 Separation of scheduler slurmctld process from users. This helps prevent a case where a user consumes all the system resources and Slurm can no longer function. Ability to set different IAM permissions for Login versus Head Node.  I&amp;rsquo;ve divided the setup into two parts:</description>
    </item>
    
    <item>
      <title>Spack 👾</title>
      <link>https://swsmith.cc/posts/spack.html</link>
      <pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/spack.html</guid>
      <description>Install Spack Spack is a package manager for supercomputers, Linux, and macOS. It makes installing scientific software easy. Spack isn’t tied to a particular language; you can build a software stack in Python or R, link to libraries written in C, C++, or Fortran, and easily swap compilers or target specific microarchitectures.
First, on the head node - which we connected to via SSM or DCV we&amp;rsquo;ll run:
export SPACK_ROOT=/shared/spack git clone -b v0.</description>
    </item>
    
    <item>
      <title>StarCCM&#43; with AWS ParallelCluster 🛩</title>
      <link>https://swsmith.cc/posts/starccm-aws-parallelcluster.html</link>
      <pubDate>Sat, 03 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/starccm-aws-parallelcluster.html</guid>
      <description>Siemens StarCCM+ is a multiphysics computational fluid dynamics (CFD) software for the simulation of products operating under real-world conditions. Simcenter STAR-CCM+ uniquely brings automated design exploration and optimization to the CFD simulation toolkit of every engineer.
In this blogpost we&amp;rsquo;ll show you how to setup StarCCM+ using AWS ParallelCluster, which will allow you to scale out your CFD simulations to thousands of cores.
Step 1: Setup a Cluster   I&amp;rsquo;ll also assume you have AWS ParallelCluster Manager setup, if you don&amp;rsquo;t follow the instructions on hpcworkshops.</description>
    </item>
    
    <item>
      <title>DCV Visualization Queue 🖥</title>
      <link>https://swsmith.cc/posts/dcv-visualization-queue.html</link>
      <pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/dcv-visualization-queue.html</guid>
      <description>Note: this has been turned into an AWS Blog! 🚀 Check it out: Elastic DCV Queues with NICE DCV DCV Visualization Queue When DCV is enabled, the default behaviour of AWS ParallelCluster is to run a single DCV session on the head node, this is a quick and easy way to visualize the results of your simulations or run a desktop application such as StarCCM+.
A common ask is to run DCV sessions on a compute queue instead of the head node.</description>
    </item>
    
    <item>
      <title>Local Storage for HPC Jobs with EBS 🗂</title>
      <link>https://swsmith.cc/posts/ebs-pcluster.html</link>
      <pubDate>Tue, 08 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/ebs-pcluster.html</guid>
      <description>In previous blogposts we looked at several approaches to add shared storage to a cluster, these all focus on mounting a shared filesystem. If you have Multi-Node (MPI) style jobs, this is likely a requirement. You can follow those guides below:
 Mount FSx Netapp ONTAP with AWS ParallelCluster Setup FSx Lustre PERSISTENT_2 with AWS ParallelCluster Mount Additional EFS/FSx Lustre Filesystems in AWS ParallelCluster  Let&amp;rsquo;s say you don&amp;rsquo;t need shared storage but rather local storage on each compute node.</description>
    </item>
    
    <item>
      <title>Multi-AZ AWS ParallelCluster 🌎</title>
      <link>https://swsmith.cc/posts/multi-az-parallelcluster.html</link>
      <pubDate>Wed, 02 Nov 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/multi-az-parallelcluster.html</guid>
      <description>Today we launched a new version of AWS ParalleCluster, version 3.3.0. This version has a beta feature hidden in the release log:
 Allow for suppressing the SingleSubnetValidator for Queues.  With this feature, we can setup a single AZ-per queue essentially allowing us to choose which Availibility Zone is associated with each queue. This is useful for capacity constrained instances, such as GPU and HPC instances which may exist in different availibility zones.</description>
    </item>
    
    <item>
      <title>Setup Amazon File Cache with AWS ParallelCluster 🗂</title>
      <link>https://swsmith.cc/posts/fsx-filecache-pcluster.html</link>
      <pubDate>Mon, 24 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fsx-filecache-pcluster.html</guid>
      <description>Amazon File Cache is a new service that provides a cache to use on-prem data in the cloud but it has a few advantages over SCP/SFTP and Datasync.
 Single namespace - files &amp;amp; metadata are copied up and down transparently to the user Support for S3 and NFSv3 (Not NFSv4 as of this writing) Lazy Loading - files are pulled in as needed, resulting in a smaller overall cache size  So when should you use File Cache?</description>
    </item>
    
    <item>
      <title>LS-Dyna with AWS ParallelCluster 🚗</title>
      <link>https://swsmith.cc/posts/ls-dyna-aws-parallelcluster.html</link>
      <pubDate>Wed, 19 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/ls-dyna-aws-parallelcluster.html</guid>
      <description>LS-Dyna is a popular Finite Element Analysis (FEA) Simulation software that uses explicit time integration, it&amp;rsquo;s commonly used in automotive to simulate crashes but can simulate any type of impact. It was originally developed at Lawrence Livermore National Lab then spun out into it&amp;rsquo;s own company (LSTC) before Ansys bought the company in 2019. Many of the artifacts from the LSTC days still exist, such as the LSTC license manager, ftp site ect.</description>
    </item>
    
    <item>
      <title>Ansys LSTC License Manager for LS-Dyna</title>
      <link>https://swsmith.cc/posts/ansys-lstc-license-manager.html</link>
      <pubDate>Tue, 18 Oct 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/ansys-lstc-license-manager.html</guid>
      <description>LSTC License Manager Instructions on how to download and setup the LS-Dyna License server from Ansys. Make sure you have the login credentials to the FTP site, i.e. you can access: https://ftp.lstc.com/user/license/License-Manager/LSTC_LicenseManager-InstallationGuide.pdf. If you don&amp;rsquo;t, contact Ansys.
 Note: In this guide I’m showing an example of how to setup a dedicated license server, however these steps can also be done on the HeadNode of a cluster. I reccomend keeping a dedicated license server so you can upgrade the cluster overtime, however for one-off cases it might be make sense to setup the license locally, if so skip to step 2.</description>
    </item>
    
    <item>
      <title>AWS ParallelCluster Slurm Constraints</title>
      <link>https://swsmith.cc/posts/slurm-constraint.html</link>
      <pubDate>Fri, 23 Sep 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-constraint.html</guid>
      <description>In previous posts we discussed adding multiple instances to same Slurm queue and enabling Fast Failover, this is great when you&amp;rsquo;re flexible on the specific instance type used to run your job, but what if you want to choose the instance type at job submission time?
In this blogpost we look at how to use the Slurm --constraint flag to pick the specific instance type at runtime.
Setup To setup, refer to the Fast Failover Setup section.</description>
    </item>
    
    <item>
      <title>Mount Home Directory in AWS ParallelCluster 🗂</title>
      <link>https://swsmith.cc/posts/external-home-pcluster.html</link>
      <pubDate>Tue, 30 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/external-home-pcluster.html</guid>
      <description>External filesystems can be mounted and used as home directories in AWS ParallelCluster. This has several advantages over the default, which is an EBS volume on the head node /home shared via NFSv4 to the compute nodes.
 Home directories can be persisted after cluster deletion, saving data and allowing users to reproduce the same environment Home directories can be mounted on multiple clusters, allowing users to have the same filesystem between different clusters Reduce dependency on HeadNode, this allows you to size down the HeadNode since it&amp;rsquo;s no longer serving critical traffic i.</description>
    </item>
    
    <item>
      <title>Setup Gromacs On AWS ParallelCluster 🧬</title>
      <link>https://swsmith.cc/posts/gromacs-pcluster.html</link>
      <pubDate>Tue, 16 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/gromacs-pcluster.html</guid>
      <description>Note: this has been turned into an AWS Workshop! 🚀 Check it out: Gromacs on AWS ParallelCluster Gromacs is a popular open source Molecular Dynamics application. It supports GPU and CPU acceleration and supports multi-node processing using MPI. In the following guide we&amp;rsquo;ll setup a MPI compatible version of Gromacs using Spack package manager.
Setup   In this guide, I&amp;rsquo;ll assume you already have AWS ParallelCluster Manager setup, if you don&amp;rsquo;t follow the instructions on hpcworkshops.</description>
    </item>
    
    <item>
      <title>Slurm Failover from Spot to On-Demand</title>
      <link>https://swsmith.cc/posts/spot-failover-ondemand.html</link>
      <pubDate>Thu, 14 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/spot-failover-ondemand.html</guid>
      <description>Spot pricing, up to 90% off On-Demand, is enticing but comes with the caveat that your jobs can get terminated with only a 2-minute warning. So what happens when your instance gets a Spot termination and you need to finish that job?
In the following blogpost I present a solution that&amp;rsquo;ll re-run failed Spot jobs on On-Demand. If you combine this with a benchmarking solution such as Gromacs Checkpointing or StarCCM+ Save State you can resume from the last checkpoint.</description>
    </item>
    
    <item>
      <title>Fast Instance Failover for Tightly-Coupled Jobs</title>
      <link>https://swsmith.cc/posts/fast-failover.html</link>
      <pubDate>Mon, 11 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fast-failover.html</guid>
      <description>In a previous blogpost I showed a method of doing all-or-nothing scaling using AWS ParallelCluster. This is a great way to save on costs by making sure your job either runs or doesn&amp;rsquo;t, but what happens when your job can&amp;rsquo;t execute due to capacity?
In this blog I present a method for re-trying the job quickly on other similar instance types, allowing you to diversify capacity while maintaining the same number of cores-per-instance.</description>
    </item>
    
    <item>
      <title>Save StarCCM&#43; State in AWS ParallelCluster 🛟</title>
      <link>https://swsmith.cc/posts/starccm-save-state.html</link>
      <pubDate>Wed, 06 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/starccm-save-state.html</guid>
      <description>Spot termination gives a 2-minute warning before terminating the instance. This time period allows you to gracefully save data in order to resume later.
In the following I describe how this can be done with StarCCM+ in AWS ParallelCluster 3.X however this can be generalized to any application that has the ability ot checkpoint and save current state. An example of this is Gromacs, for which I wrote a blogpost on how to enable checkpointing.</description>
    </item>
    
    <item>
      <title>Multi-User AWS ParallelCluster</title>
      <link>https://swsmith.cc/posts/parallelcluster-multi-user.html</link>
      <pubDate>Mon, 27 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/parallelcluster-multi-user.html</guid>
      <description>See #170
This approach is a fairly lightweight way of adding users, it gives all users the same permissions. If you want a more robust multi-user approach I suggest you setup AD authentication.
In order to create a user for the cluster, that user needs to exist on all the compute nodes. If they don&amp;rsquo;t Slurm won&amp;rsquo;t be able to schedule jobs and you won&amp;rsquo;t be able to run mpi jobs across multiple nodes.</description>
    </item>
    
    <item>
      <title>Enable All-or-Nothing Scaling with AWS ParallelCluster 🖥</title>
      <link>https://swsmith.cc/posts/all-or-nothing.html</link>
      <pubDate>Tue, 21 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/all-or-nothing.html</guid>
      <description>Update: This has been turned into an official AWS Blogpost: Minimize HPC compute costs with all-or-nothing instance launching 
Enable All-or-Nothing Scaling with AWS ParallelCluster All or nothing scaling is useful when you need to run MPI jobs that can&amp;rsquo;t start until all N instances have joined the cluster.
The way Slurm launches instances is in a best-effort fashion, i.e. if you request 10 instances but it can only get 9, it&amp;rsquo;ll provision 9 then keep trying to get the last instance.</description>
    </item>
    
    <item>
      <title>Slurm Accounting with AWS ParallelCluster 📊</title>
      <link>https://swsmith.cc/posts/slurm-accounting-aws-parallelcluster.html</link>
      <pubDate>Tue, 24 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-accounting-aws-parallelcluster.html</guid>
      <description>In this tutorial we will work through setting up Slurm Accounting. This enables many features within slurm, including job resource tracking and providing a necessary building block to slurm federation.
Step 1 - Setup External Accounting Database The first requirement is to setup an external database that Slurm can use to store the accounting data.
Use the following CloudFormation Quick-Create link to create the database in your AWS account.</description>
    </item>
    
    <item>
      <title>Dynamic Filesystems with AWS ParallelCluster 🗂️</title>
      <link>https://swsmith.cc/posts/aws-parallelcluster-dynamic-fsxl.html</link>
      <pubDate>Fri, 20 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/aws-parallelcluster-dynamic-fsxl.html</guid>
      <description>You can dynamically create a filesystem per-job, this is useful for jobs that require a fast filesystem but don&amp;rsquo;t want to pay to have the filesystem running 24/7. It&amp;rsquo;s also useful to create a filesystem per-job to make sure that job has the fastest possible throughput.
In order to accomplish this without wasting time waiting for the filesystem to create (~10 mins), we&amp;rsquo;ve seperated this into three seperate jobs:
 Create filesystem, only needs a single EC2 instance to run, can be run on head node.</description>
    </item>
    
    <item>
      <title>Mount FSx Netapp ONTAP with AWS ParallelCluster 🗂️</title>
      <link>https://swsmith.cc/posts/fsxn-pcluster.html</link>
      <pubDate>Mon, 16 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fsxn-pcluster.html</guid>
      <description>FSx Netapp ONTAP is a multi-protocol filesystem. It mounts on Windows as SMB, Linux as NFS and Mac. This allows cluster users to bridge their Windows and Linux machines with the same filesystem, potentially running both windows and linux machines for a post-processing workflow.
Since 3.2.0, FSx Netapp is a supported filesystem type in AWS ParallelCluster, this means you can mount the filesystem directly through the config without having to specify a post-install script.</description>
    </item>
    
    <item>
      <title>How to disable hpc6a.48xlarge cores</title>
      <link>https://swsmith.cc/posts/disable-hpc6a-cores.html</link>
      <pubDate>Mon, 09 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/disable-hpc6a-cores.html</guid>
      <description>How to disable hpc6a.48xlarge cores Due to the EPYC architecture, it makes more sense to disable specific cores rather than let the scheduler choose which cores to run on. This is because each ZEN 3 core is attached to a compute complex that&amp;rsquo;s made up of 4 cores, L2 and L3 cache, by disabling 1, 2 or 3 cores from the same compute complex, we increase the memory bandwidth of the remaining cores.</description>
    </item>
    
    <item>
      <title>Mount FSx Lustre on AWS Batch ⚓️</title>
      <link>https://swsmith.cc/posts/aws-batch-fsxlustre.html</link>
      <pubDate>Sat, 30 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/aws-batch-fsxlustre.html</guid>
      <description>Mount FSx Lustre on AWS Batch This guide describes how to mount FSx Lustre filesystem. I give an example cloudformation stack to create the AWS Batch resources.
I loosely follow this guide.
For the parameters, it&amp;rsquo;s important that the Subnet, Security Group, FSx ID and Fsx Mount Name follow the guidelines below:
   Parameter Description     Subnet ID I suggest launching the batch job in the same subnet as the   Security Group Must allow mounting the filesystem port 988.</description>
    </item>
    
    <item>
      <title>Slurm Failover from Spot to On-Demand</title>
      <link>https://swsmith.cc/posts/slurm-failover-ondemand.html</link>
      <pubDate>Thu, 28 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-failover-ondemand.html</guid>
      <description>Slurm Failover from Spot to On-Demand In AWS ParallelCluster you can setup a cluster with two queues, one for Spot pricing and one for On-demand. When a job fails, due to a spot reclaimation, you can automatically requeue that job to OnDemand.
To set that up, first create a cluster with a Spot and OnDemand queue:
- Name: od ComputeResources: - Name: c6i-od-c6i32xlarge MinCount: 0 MaxCount: 4 InstanceType: c6i.32xlarge Efa: Enabled: true GdrSupport: true DisableSimultaneousMultithreading: true Networking: SubnetIds: - subnet-846f1aff PlacementGroup: Enabled: true - Name: spot ComputeResources: - Name: c6i-spot-c6i32xlarge MaxCount: 4 InstanceType: c6i.</description>
    </item>
    
    <item>
      <title>Setup FSx Lustre PERSISTENT_2 with AWS ParallelCluster 🗂️</title>
      <link>https://swsmith.cc/posts/fsx-persistent-2-pcluster.html</link>
      <pubDate>Sat, 19 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/fsx-persistent-2-pcluster.html</guid>
      <description>Overview AWS ParallelCluster only supports PERSISTENT_1, SCRATCH_1 and SCRATCH_2 as filesystems created by the cluster, however to launch filesystems with PERSISTENT_2 (announced at re:Invent 2021), you can create the filesystem outside of pcluster and then mount in the config.
Why use PERSISTENT_2?
 40% cheaper for the same throughput. See AWS FSx Lustre Pricing Link multiple S3 Buckets with the same Filesystem Link and de-link buckets after filesystem creation  Setup From the AWS ParallelCluster docs we learn:</description>
    </item>
    
    <item>
      <title>Connect to AWS ParallelCluster with EC2 Instance Connect</title>
      <link>https://swsmith.cc/posts/ec2-instance-connect.html</link>
      <pubDate>Fri, 11 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/ec2-instance-connect.html</guid>
      <description>Connect to AWS ParallelCluster with EC2 Instance Connect EC2 Instance connect allows you to SSH into an EC2 instance without a keypair. You can also perform basic file transfer i.e. SFTP and SCP with it.
Advantages:
 doesn&amp;rsquo;t require an SSH keypair connects to private IP addresses (you still need network connectivity)  You can read more about it here.
 First install the ec2instanceconnectcli helper:  pip install ec2instanceconnectcli Connect to the instance with the mssh command:  export AWS_DEFAULT_REGION=&amp;#39;us-east-2&amp;#39; mssh $(pcluster describe-cluster --cluster-name hpc6a | jq -r &amp;#39;.</description>
    </item>
    
    <item>
      <title>Copy AMI cross-account</title>
      <link>https://swsmith.cc/posts/copy-ami-cross-account.html</link>
      <pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/copy-ami-cross-account.html</guid>
      <description>Copy AMI cross-account This method works to copy any AMI from one account to another (without sharing or making it a public ami), or across different partitions, i.e. Commercial to GovCloud.
 In Commercial transfer AMI from ec2 to s3  aws ec2 create-store-image-task \  --image-id ami-1234567890abcdef0 \  --bucket myamibucket Wait for the transfer to complete, you can monitor it’s progress:  aws ec2 describe-store-image-tasks Copy the AMI to an S3 bucket in Govcloud  aws s3 cp s3://myamibucket/ami-1234567890abcdef0.</description>
    </item>
    
    <item>
      <title>Setup Licensing with AWS ParallelCluster and Slurm 🪪</title>
      <link>https://swsmith.cc/posts/slurm-license-accounting.html</link>
      <pubDate>Fri, 03 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/slurm-license-accounting.html</guid>
      <description>Setup Licensing with AWS ParallelCluster and Slurm Slurm has the ability to track licenses, for example if you have 100 LS-Dyna licenses available, you can have jobs that would exceed that amount stay in pending until some of the licenses free up. Slurm has two ways of doing this:
 Local Licenses - Local licenses are local to the cluster in the slurm.conf. Use this if you have only one cluster.</description>
    </item>
    
    <item>
      <title>Import Custom AMI into SOCA to provision capacity faster</title>
      <link>https://swsmith.cc/posts/soca-custom-ami.html</link>
      <pubDate>Fri, 29 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/soca-custom-ami.html</guid>
      <description>Import custom AMI to provision capacity faster By default, SOCA provision a vanilla AMI and install all required packages in ~3 to 5 minutes. If this cold time is not acceptable for your workload, you can launch AlwaysOn instance or pre-bake your AMI with all required libraries.
Step 1: Locate your base AMI Run cat /etc/environment | grep SOCA_INSTALL_AMI on your scheduler host
$ ssh -i &amp;lt;key&amp;gt; ec2-user@&amp;lt;ip&amp;gt; Last login: Wed Oct 2 20:06:47 2019 from &amp;lt;ip&amp;gt; _____ ____ ______ ___ / ___/ / __ \ / ____// | \__ \ / / / // / / /| | ___/ // /_/ // /___ / ___ | /____/ \____/ \____//_/ |_| Cluster: soca-uiupdates &amp;gt; source /etc/environment to SOCA paths [ec2-user@ip-30-0-1-28 ~]$ cat /etc/environment | grep SOCA_INSTALL_AMI export SOCA_INSTALL_AMI=ami-082b5a644766e0e6f [ec2-user@ip-30-0-1-28 ~]$ Step 2: Launch a temporary EC2 instance Launch a new EC2 instance using the SOCA_INSTALL_AMI image Step 3: Pre-configure your AMI !</description>
    </item>
    
    <item>
      <title>Mount Additional EFS/FSx Lustre Filesystems in AWS ParallelCluster 🗂️</title>
      <link>https://swsmith.cc/posts/aws-parallelcluster-multi-fs.html</link>
      <pubDate>Wed, 22 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/aws-parallelcluster-multi-fs.html</guid>
      <description>Mount Additional EFS Filesystems in AWS ParallelCluster In AWS ParallelCluster 3.0 only one EFS filesystem can be mounted at a time. This guide allows you to attach multiple by making use of the Custom Bootstrap Actions feature to create a OnNodeConfigured script that mounts the Filesystem.
To create the mount script we&amp;rsquo;ll match the options that parallelcluster uses when it launches a filesystem. See efs_mount.rb for more info.
 First create a script efs.</description>
    </item>
    
    <item>
      <title>Github Best Practices 🦸‍♂️</title>
      <link>https://swsmith.cc/posts/github-best-practices.html</link>
      <pubDate>Mon, 14 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/github-best-practices.html</guid>
      <description>tl;dr
 One commit, one feature! Specific commit messages No merge commits!  0. Supercharge GIT 🦸‍♂️ Create a global ~/.gitconfig file and include the following (change my name, email and home dir obviously):
[alias] st = status ci = commit br = branch co = checkout lg = &amp;#34;log --color --graph --pretty=format:&amp;#39;%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)&amp;lt;%an&amp;gt;%Creset&amp;#39; --abbrev-commit --&amp;#34;  [user] email = email@domain.com name = Sean Smith [rebase] autoStash = true [core] excludesfile = /Users/username/.</description>
    </item>
    
    <item>
      <title>Ansys Remote Solve Manager SOCA</title>
      <link>https://swsmith.cc/posts/ansys-rsm-pcluster.html</link>
      <pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/ansys-rsm-pcluster.html</guid>
      <description>Ansys Remote Solve Manager SOCA Remote Solve Manager is an Ansys software which enable PBS job submission from Ansys WorkBench interface.
First install First set your Ansys Root, we&amp;rsquo;ll use this throughout the doc to edit files:
export ANSYS_ROOT=/apps/ansys_inc/v202 ll $ANSYS_ROOT # make sure it exists  Note Ansys switched from Python 2 to 3 between releases 19.2 and 20.2, the following scripts only work in Python 3. To make this work for versions &amp;lt; 19.</description>
    </item>
    
    <item>
      <title>Intel Select Solution Cluster Setup</title>
      <link>https://swsmith.cc/posts/intel-select-solution.html</link>
      <pubDate>Wed, 04 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/intel-select-solution.html</guid>
      <description>Intel Select Solution Cluster Setup AWS ParallelCluster is available as an Intel Select Solution for simulation and modeling. Configurations are verified to meet the standards set by the Intel HPC Platform Specification, use specific Intel instance types, and are configured to use the Elastic Fabric Adapter (EFA) networking interface. AWS ParallelCluster is the first cloud solution to meet the requirements for the Intel Select Solutions program. Supported instance types include c5n.</description>
    </item>
    
    <item>
      <title>Chrome Shortcuts</title>
      <link>https://swsmith.cc/posts/chrome-shortcuts.html</link>
      <pubDate>Wed, 15 Feb 2017 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/posts/chrome-shortcuts.html</guid>
      <description>I had this idea to make the browser more friendly to a keyboard native user like me. In the CLI I rely heavily on shortcuts aka &amp;ldquo;aliases&amp;rdquo; to navigate. So in 2017 I built a chrome extension that allows you to do this. The usage is simple, you navigate to a site you want to create a shortcut for, then add the page with a custom keyword:
I put it up in the chrome webstore and forgot about it.</description>
    </item>
    
    <item>
      <title>about</title>
      <link>https://swsmith.cc/about.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/about.html</guid>
      <description>I am a Solution Architect at AWS focused on AI/ML, specifically distributed training. My background is in High-Performance and Scientific Computing. I joined Amazon in 2017 and I helped build and launch AWS ParallelCluster, an open-source product to build High-Performance computing clusters. I then built out ParallelCluster Manager (now called ParallelCluster UI), a web-console for ParallelCluster. I&amp;rsquo;m a Pilot and a Flight Instructor (CFI, CFII). I own two airplanes and have flown to all 50 US States to raise money for Angel Flight West.</description>
    </item>
    
    <item>
      <title>Bucket List</title>
      <link>https://swsmith.cc/bucketlist.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/bucketlist.html</guid>
      <description>What&amp;rsquo;s on your bucket list?
 ✅ Run the Ultra-trail Mt. Blanc (UTMB) proof ✅ Climb Mt Kilimanjaro ✅ Climb Mt Blanc proof ❌ Climb the Seven Highest Summits on each continent (2/7) ❌ Run a sub-3 hour marathon ❌ Ski tour the Haute route ✅ Learn to paraglide 🪂 ✅ Learn to fly ✈️ proof ❌ Climb the 5 volcanoes in WA (Rainier, Baker, Adams, St. Helens, Glacier Peak) (4/5) 🗻 ✅ Visit all 50 states ❌ Visit all 7 continents (4/7) ✅ Run 100 mile race proof ✅ Complete an Ironman proof ✅ Fly to Alaska proof ❌ Fly to Mexico  Inspired by twogoglobal.</description>
    </item>
    
    <item>
      <title>Slides 👾</title>
      <link>https://swsmith.cc/slides.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/slides.html</guid>
      <description>Slides from various talks:
Train and tune foundation models at scale with Amazon SageMaker, AWS NYC Summit - July 21th, 2024 
Kanwaljit Khurmi and myself gave a talk at AWS NYC Summit in 2024 titled &amp;ldquo;Train and tune foundation models at scale with Amazon SageMaker&amp;rdquo; announcing a new product AWS Hyperpod.
Design, engineering &amp;amp; simulation on AWS using HPC &amp;amp; virtual desktops, AWS re:Invent - November 29th, 2023</description>
    </item>
    
    <item>
      <title>Websites 👾</title>
      <link>https://swsmith.cc/websites.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://swsmith.cc/websites.html</guid>
      <description>Websites I&amp;rsquo;ve built over the years:
cluster-creator.swsmith.cc Cluster Creator makes the process of configuring AWS ParallelCluster easy. See Cluster Creator

abexalate.com I built a website for my girlfriend Alex ❤️

blog.seanssmith.net Blog that I built completely from HTML + CSS.

Chrome Shortcuts Chrome extension that grew to &amp;gt; 1K Monthly Active Users, even inspired a copy cat</description>
    </item>
    
  </channel>
</rss>
