LAMWIPE(1)

πŸ’– LAMWIPE(1) πŸ’–

okay bestie, so this is the LAMWIPE(1) page from the LAM TOOLS manual set, and we're gonna get through it together, no cap. grab a snack, it's giving "old-school cluster tech but make it cute" πŸŽ€


✨ NAME ✨

lamwipe β€” shutdown LAM. that's it. that's the job. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

lamwipe [-b] [-d] [-h] [-v] [-nn] [-np] [-n #] [-prefix
       /lam/install/path] [-prefix /lam/install/path/] [-sessionprefix
       value] [-sessionsuffix value] [-withlamprefixpath value] [-ssi
       key value] [bhost]

yes, both -prefix /lam/install/path and -prefix /lam/install/path/ are in there. slashes matter, bestie, don't @ me. 🌸


πŸ’– OPTIONS πŸ’–

  • -b β€” assume the local shell and the remote shell are literally the same thing. what that means: only one remote shell invocation gets used per node. if you don't pass -b, you get two remote shell invocations per node. that's the whole difference. periodt. ✨
  • -d β€” turn on debugging mode. and heads up, this lowkey implies -v. they come as a set, it's giving package deal. πŸ”
  • -h β€” print the command help menu. the "help me i forgot the flags" button. iconic. πŸ™ˆ
  • -n # β€” lamwipe only the first # nodes. not all of them. just the first #. πŸ‘‘
  • -prefix β€” use the LAM installation specified in /lam/install/path/. 🧚
  • -ssi key value β€” send arguments to various SSI modules. go read the "SSI" section down below, i gotchu. πŸ’œ
  • -v β€” be verbose. tell me everything, main character energy. πŸ—£οΈ
  • -nn β€” don't add "-n" to the remote agent command line. πŸ’€
  • -np β€” do not force the execution of $HOME/.profile on remote hosts. leave their profile alone fr fr. 🚫
  • -session-prefix value β€” set the session prefix, overriding LAM_MPI_SESSION_PREFIX. πŸŽ€
  • -session-suffix value β€” set the session suffix, overriding LAM_MPI_SESSION_SUFFIX. πŸŽ€
  • -withlamprefixpath value β€” override the internal installation path. and listen, the manual says "For internal use only, do not use unless you know what you are doing." so like... do you know what you're doing? if not, hands off bestie, i'm serious. ⚠️

🌈 DESCRIPTION 🌈

so here's the tea: this command has been deprecated in favor of the lamhalt command. like, it's still here, but it's the backup dancer now. lamwipe should only be necessary if lamhalt fails and can't clean up the LAM run-time environment properly. 😭

what lamwipe does: it terminates the LAM software on each of the machines specified in the boot schema, bhost. it's the topology tool that terminates LAM on the UNIX(tm) nodes of a multicomputer system. it invokes tkill(1) on each machine. and if you wanna know exactly how LAM gets terminated on each node, go read tkill(1), it's all there. πŸ“–

the bhost file is a LAM boot schema written in the host file syntax. quick note: CPU counts in the boot schema are ignored by lamwipe. see bhost(5) for that whole situation. instead of putting it on the command line, you can specify a boot schema in the LAMBHHOST environment variable β€” wait, sorry, it's LAMBHOST, my bad, typing too fast πŸ’€ β€” the environment variable is LAMBHOST. otherwise a default file, bhost.def, is used. LAM searches for bhost first in the local directory and then in the installation directory under etc/. πŸ—‚οΈ

now, the important vibe: lamwipe does not quit if a particular remote node can't be reached, and it does not quit if tkill(1) fails on any node. nope. it just prints a message if either of those failures happen. and then it's on you to investigate the cause of failure and, if necessary, terminate LAM by manually executing tkill(1) on the problem node(s). in extreme cases? the user may have to terminate individual LAM processes with kill(1). yeah. extreme cases are extreme. πŸ”₯

lamwipe will terminate after a limited number of nodes if the -n option is given. this is mainly intended for use by lamboot(1), which invokes lamwipe when a boot does not successfully complete. teamwork! 🫢

⭐ SSI (System Services Interface) ⭐

the -ssi switch lets you pass parameters to various SSI modules. LAM's SSI modules are described in detail in lamssi(7). and why do you care? because SSI modules have direct impact on MPI programs β€” they let tunable parameters get set at run time. stuff like which boot device driver to use, what parameters to pass to that driver, etc. very "settings menu but for your cluster." πŸŽ›οΈ

the -ssi switch takes two arguments: key and value. the key argument generally specifies which SSI module will receive the value. for example, the key "boot" is used to select which RPI to be used for starting processes on remote nodes. the value argument is the value that's passed. for example:

lamboot -ssi boot tm
Tells LAM to use the "tm" boot module for native launching in PBSPro / OpenPBS environments (the tm boot module does not require a boot schema).
lamboot -ssi boot rsh -ssi rsh_agent "ssh -x" boot_file
Tells LAM to use the "rsh" boot module, and tells the rsh module to use "ssh -x" as the specific agent to launch executables on remote nodes.

and so on, and so on. LAM's boot SSI modules are described in lamssi_boot(7). πŸ“š

you can use the -ssi switch multiple times to specify different key and/or value arguments. and if you specify the same key more than once, the values get concatenated with a comma (,) separating them. cute little merge, honestly. πŸ’«

note that the -ssi switch is simply a shortcut for setting environment variables. same effect can be accomplished by setting corresponding environment variables before running lamwipe. the form of the environment variables that LAM sets is: LAM_MPI_SSI_key=value. ✨

also note: the -ssi switch overrides any previously set environment variables. and also note: unknown key arguments are still set as environment variable β€” they are not checked (by lamwipe) for correctness. illegal or incorrect value arguments may or may not be reported β€” it depends on the specific SSI module. so like, it might yell at you, it might not. shrug. 🀷

🧚 Remote Executable Invocation 🧚

all the tweakable aspects of launching executables on remote nodes during lamwipe are discussed in lamssi(7) and lamssi_boot(7). topics include (but are not limited to): discovery of remote shell, run-time overrides of the agent used to launch remote executables (e.g., rsh and ssh), etc. so if you're the kind of girlie who likes knobs and dials, that's your reading list. πŸ“–βœ¨


πŸ“ EXAMPLES πŸ“

lamwipe -v mynodes
Shutdown LAM on the machines described in the boot schema, mynodes. Report about important steps as they are done.

see, verbose mode is literally just "narrate your life to me." obsessed. πŸ’…


πŸŽ€ FILES πŸŽ€

  • laminstalldir/etc/lam-bhost.def β€” default boot schema file, where "laminstalldir" is the directory where LAM/MPI was installed. πŸ—‚οΈ

πŸ‘‘ SEE ALSO πŸ‘‘

recon(1), lamboot(1), tkill(1), bhost(5), lam-helpfile(5), lamssi(7), lamssi_boot(7)


⚠️ reminder bestie: lamwipe is deprecated in favor of lamhalt. only reach for this one if lamhalt fails and can't clean up properly. and do NOT touch -withlamprefixpath unless you actually know what you're doing. i'm not playing. πŸ’œ

and that's the whole page, babes!! this was LAM 7.1.4, from July, 2007 β€” yeah, 2007, it's vintage, it's a classic, we respect the elders 🫢 β€” and it lives in the LAM TOOLS manual, section 1. go forth and shut down your clusters responsibly. slay. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ‘‘πŸŒˆβ­