Provisioning with Stacki at NIST

48
Provisioning with Stacki Justin Senseney HPC/ISD/OISM/NIST [email protected] High Performance Computing Group Including: Carl Spangler, Justin Senseney, Mark Williams November 30, 2016 1

Transcript of Provisioning with Stacki at NIST

Page 1: Provisioning with Stacki at NIST

ProvisioningwithStackiJustinSenseney

HPC/ISD/OISM/[email protected]

HighPerformanceComputingGroupIncluding:CarlSpangler,JustinSenseney,MarkWilliams

November30,2016 1

Page 2: Provisioning with Stacki at NIST

Overview

2

• Disclaimer• AboutNIST• Ourideas• Existingsystem

• Hardware• Network• Software

• Newsystem• Stacki• SSHkeys• Directorystructure• Software• Modules

• Examples• Monitoring• Interactivejob• Parallelprocessing

Page 3: Provisioning with Stacki at NIST

Disclaimer

3

• Anymentionofcommercialproducts,includingStacki,withinthispresentationisforinformationonly;itdoesnotimplyrecommendationorendorsementbyNIST.

Page 4: Provisioning with Stacki at NIST

AboutNIST• PartofU.S.DepartmentofCommerce• Non-regulatory

• Ametrologyinstitute– maintainsmeasurementstandards• Timeserver- time.nist.gov• Twofactorauthentication– HSPD12• Standardreferencedata

• Gaithersburg,MD• Boulder,CO

4

Page 5: Provisioning with Stacki at NIST

Ourideas

• Orderingcartsformultiplecarts• Stackcompilecartforchanges• Versionnumberthatnodeisinstalledwith• Cleanupgradeprocesstopreservegit repository

5

Page 6: Provisioning with Stacki at NIST

Existingsystem

• Inplacelast10+years:• Hardware– heterogeneoushardware

• Network– simple,flatnetwork

• Software– CentOS5,maui/torque,consistentimage

6

Page 7: Provisioning with Stacki at NIST

Existingsystem

• Inplacelast10+years:• Hardware– heterogeneoushardware

• Supportdifferenthardwareconfigurations• Network– simple,flatnetwork

• Increasetopologycomplexity• Software – CentOS5,maui/torque,consistentimage

• Softwareinstalledonlocalmachine

7

Page 8: Provisioning with Stacki at NIST

Hardware

• LocatedinGaithersburg,MD.• OwnedbyNISTscientificorganizationalunits,managedbyOfficeofInformationSystemsManagement(OISM).

• Nodes- 8GB/core,procured2010- 2016:• Differentvendors

• Network– infiniband,ethernet• Daisychainedswitches• Differentvendors

8

Page 9: Provisioning with Stacki at NIST

Network• Protocols

• Infiniband onseparatecard• Etherneton-board

• Headnode• Login• Provisioning• Queuemanager

• FlatnetworkRaritanusesthistypicalHPCsetup.Allincomingconnectionsgototheheadnode.Picturefrom:http://www.udel.edu/it/research/training/config_laptop/

9

Page 10: Provisioning with Stacki at NIST

Software

• Maui/Torque• systemimager – providedconsistentimage• CentOS5and7• SSHkeysshared

• Directories:• /usr/local/binforsharedsoftware• /tmp forlocalcomputing• /wrk forsharedstorage• /homeforuserdata

10

Page 11: Provisioning with Stacki at NIST

NewSystem

• Stacki• SSHkeys• Directorystructure• Software• Modules

11

Page 12: Provisioning with Stacki at NIST

12

NewSystem

• Stacki• SSHkeys• Directorystructure• Software• Modules

Rocks Stacki

Appliance Box

Roll Pallet

Distribution Cart

Page 13: Provisioning with Stacki at NIST

Stacki

• Stacki box• OurboxcontainsmultiplePallets• Ourboxcontains1Cart

13https://commons.wikimedia.org/wiki/File:Box.agr.jpghttps://upload.wikimedia.org/wikipedia/commons/8/88/A1210.jpghttps://commons.wikimedia.org/wiki/Category:Utility_carts#/media/File:Moebelhunt_fcm.jpg

Page 14: Provisioning with Stacki at NIST

Stacki

• Stacki box• OurboxcontainsmultiplePallets• Ourboxcontains1Cart

• Pallets• 3rd party,softwarewithdifferentversions

14https://commons.wikimedia.org/wiki/File:Box.agr.jpghttps://upload.wikimedia.org/wikipedia/commons/8/88/A1210.jpghttps://commons.wikimedia.org/wiki/Category:Utility_carts#/media/File:Moebelhunt_fcm.jpg

Page 15: Provisioning with Stacki at NIST

Stacki

• Stacki box• OurboxcontainsmultiplePallets• Ourboxcontains1Cart

• Pallets• 3rd party,softwarewithdifferentversions

15https://commons.wikimedia.org/wiki/File:Box.agr.jpghttps://upload.wikimedia.org/wikipedia/commons/8/88/A1210.jpghttps://commons.wikimedia.org/wiki/Category:Utility_carts#/media/File:Moebelhunt_fcm.jpg

Page 16: Provisioning with Stacki at NIST

Stacki

• Stacki box• OurboxcontainsmultiplePallets• Ourboxcontains1Cart

• Pallets• 3rd party,softwarewithdifferentversions

• Carts• Custom/configuredsoftware• Systemfiles

16https://commons.wikimedia.org/wiki/File:Box.agr.jpghttps://upload.wikimedia.org/wikipedia/commons/8/88/A1210.jpghttps://commons.wikimedia.org/wiki/Category:Utility_carts#/media/File:Moebelhunt_fcm.jpg

Page 17: Provisioning with Stacki at NIST

Stacki

• Stacki box• OurboxcontainsmultiplePallets• Ourboxcontains1Cart

• Pallets• 3rd party,softwarewithdifferentversions

• Carts• Custom/configuredsoftware• Systemfiles

17https://commons.wikimedia.org/wiki/File:Box.agr.jpghttps://upload.wikimedia.org/wikipedia/commons/8/88/A1210.jpghttps://commons.wikimedia.org/wiki/Category:Utility_carts#/media/File:Moebelhunt_fcm.jpg

Page 18: Provisioning with Stacki at NIST

Stacki

• Stacki box• OurboxcontainsmultiplePallets• Ourboxcontains1Cart

• Pallets• 3rd party,softwarewithdifferentversions

• Carts• Custom/configuredsoftware• Systemfiles

18https://commons.wikimedia.org/wiki/File:Box.agr.jpghttps://upload.wikimedia.org/wikipedia/commons/8/88/A1210.jpghttps://commons.wikimedia.org/wiki/Category:Utility_carts#/media/File:Moebelhunt_fcm.jpg

• Orderingcartsformultiplecarts• stackcompilecartforchanges

Page 19: Provisioning with Stacki at NIST

SSHkeys

• systemimager duplicatesssh keys,howdouserslogin

• Mungeauthentication:• Slurm letsuserslaunchcommandsusingmungeusingsharedkey

19

Page 20: Provisioning with Stacki at NIST

SSHkeys

• systemimager duplicatesssh keys,howdouserslogin

• Mungeauthentication:• Slurm letsuserslaunchcommandsusingmungeusingsharedkey

20

Page 21: Provisioning with Stacki at NIST

SSHkeys

• systemimager duplicatesssh keys,howdouserslogin

• Mungeauthentication:• Slurm letsuserslaunchcommandsusingmungeusingsharedkey

21

Page 22: Provisioning with Stacki at NIST

SSHkeys

• systemimager duplicatesssh keys,howdouserslogin:

• Mungeauthentication:• Slurm letsuserslaunchcommandsusingmungeusingsharedkey

• SSHkeys:• HaveusersaddSSHkeyinhometo.ssh/authorized_keys

22

Page 23: Provisioning with Stacki at NIST

SSHkeys

• systemimager duplicatesssh keys,howdousersloginnow:

• Mungeauthentication:• Slurm letsuserslaunchcommandsusingmungeusingsharedkey

• SSHkeys:• HaveusersaddSSHkeyinhometo.ssh/authorized_keys• Placedscriptfordoingthisin/share/sw <-- needunderstandabledirectorystructure

23

Page 24: Provisioning with Stacki at NIST

Directorystructure

• Types• Configurationfiles• Stacki-usedfiles• Sharedsoftware• Stacki-createdfiles

• Maintenance• Git repositories

24

Page 25: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles• Agit repository

25

Page 26: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

26

Page 27: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

27

• Versionnumberthatnodeisinstalledwith• Cleanupgradeprocesstopreservegit repository

Page 28: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

28

Page 29: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

29

Page 30: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

• /export/sw – 3rd party/licensedsoftwareinstalledhere• Cangetmessy

30

Page 31: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

• /export/sw – 3rd party/licensedsoftwareinstalledhere• Cangetmessy

• /export/stack/spreadsheets• Createdbystacki

31

Page 32: Provisioning with Stacki at NIST

Directorystructure

• /export/apps/configfiles – cartpullsfromhere• Agit repository

• /export/stack/carts/extend– theconfig cart• Agit repository

• /export/sw – 3rd party/licensedsoftwareinstalledhere• Cangetmessy

• /export/stack/spreadsheets• Createdbystacki

32

Page 33: Provisioning with Stacki at NIST

Clustersoftware– wemaintain

• Localsoftware– ifoutofdatefileITACticket• /usr/local/bin• /usr/bin• IncludesLAMMPS,Python34,Paraview,FFTW

• Maintainedbyyumrepository,morelikelytobeuptodate• Useyumsearch[name]tofindmoreavailablesoftware

• Sharedsoftware– ifoutofdatecontactPOC• /share/sw• Anaconda,Gaussian,OpenFOAM,OpenMPI

• FixedversionsrequestedbyRaritanusers,onlyupdatedbyrequest

33

Page 34: Provisioning with Stacki at NIST

Clustersoftware– allbyyuminstall• Programminglibraries:

• Lapack• MKL• ACML• BLACS• ScaLAPACK• CMLIB• Python• R• Java

• Editingfiles:• Nox11

• Vi• Vim• Emacs• Nano

• X11• Gedit• Sublime

• Comparingfiles:• Nox11

• Vimdiff• X11

• Kdiff3• Meld

34

Page 35: Provisioning with Stacki at NIST

Modules

• Easiermanagementofenvironmentvariables• moduleavail• Gaussian,mpi,intel,hpc

• modulepurge

35

Page 36: Provisioning with Stacki at NIST

Modules– Example

• moduleloadopenmpi

• moduledisplayopenmpi

• echo$LD_LIBRARY_PATH

• moduleremoveopenmpi

36

Page 37: Provisioning with Stacki at NIST

Examples• Monitoring• Sview• Checkpacking

• Jobsubmission• sbatchBuilder• Srun• OpenMPI

37

Page 38: Provisioning with Stacki at NIST

Sview

38

Page 39: Provisioning with Stacki at NIST

Checkpacking

39

Page 40: Provisioning with Stacki at NIST

sbatchBuilder• Helpsspecifycommandslikelastexample• Toget:sbatch –N3–pquick–carch=8myScript.sh• sbatchBuilder –N3 –c8 –qquickmyScript.sh

40

Seelistofoptions

Page 41: Provisioning with Stacki at NIST

Srun

• salloc –nodes=4--ntasks-per-node=1

• srun hostname

• srun /wrk/jss7/makedir.sh /scratch/jss7

• scancel [jobNum]

41

Page 42: Provisioning with Stacki at NIST

OpenMPI

• Integratingfunctiontoapproximatepi

• Canrunon1machine:• Moduleloadpgi• Moduleloadopenmpi

• mpicc cpi.c –ocpi

• Don’trunonheadnode

42

Page 43: Provisioning with Stacki at NIST

OpenMPI – submissionscript

• Trympirun

• sbatch multijob.sbatch

43

Page 44: Provisioning with Stacki at NIST

OpenMPI – submissionscript

• Trympirun

• sbatch multijob.sbatch

• sbatch –constraint=”haswell”–nodes=4

44

Page 45: Provisioning with Stacki at NIST

OpenMPI – results

• 12workernodes

45

Page 46: Provisioning with Stacki at NIST

OpenMPI – results

• 19workernodes

46

Page 47: Provisioning with Stacki at NIST

Ourideas

• Orderingcartsformultiplecarts• Stackcompilecartforchanges• Versionnumberthatnodeisinstalledwith• Cleanupgradeprocesstopreservegit repository

47

Page 48: Provisioning with Stacki at NIST

Questions?

• Myemail:[email protected]

48

• Anymentionofcommercialproductswithinthispresentationisforinformationonly;itdoesnotimplyrecommendationorendorsementbyNIST.