hmmpgmd_shard(1)

πŸ“¦
version 3.4 Β· 2 versions
, in debian trixie, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’… hmmpgmd_shard β€” the sharded daemon, bestie edition

okay so real quick, this is a page from the HMMER Manual, and we're talking about hmmpgmd_shard(1). buckle up πŸŽ€


✨ NAME ✨

hmmpgmd_shard β€” the sharded daemon for database search web services πŸŒπŸ’–


🌸 SYNOPSIS 🌸

hmmpgmd_shard [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the tea β˜• hmmpgmd_shard is literally a sharded version of the hmmpgmd program that we use internally to implement high-performance HMMER services you can reach over the internet. if you wanna know how the base hmmpgmd program gets used, go read the hmmpgmd man page, no cap. this man page is all about the differences between hmmpgmd_shard and hmmpgmd.

so the base hmmpgmd program loads the entirety of its database file into RAM on every worker node β€” even though each worker node only ever searches a predictable fraction of the database(s) in that file when it's doing searches. that's just… wasting RAM 😭 especially when you've got a ton of worker nodes accelerating searches of big databases.

Hmmpgmd_shard said "not me being wasteful" πŸ’… and fixes this by dividing protein sequence database files into shards. each worker node loads only 1/Nth of the database file, where N is the number of worker nodes attached to the master. HMM database files are not sharded, which means every worker node will load the entire database file into RAM. but like, current HMM databases are so much smaller than current protein sequence databases, and they easily fit into the RAM of modern servers even without sharding, so it's giving totally fine ✨

Hmmpgmd_shard is used the same way as hmmpgmd, except it takes one additional argument: --num_shards <n>, which specifies the number of shards that protein databases will be divided into, and defaults to 1 if unspecified. this argument is only valid for the master node of a hmmpgmd system (i.e., when --master is passed to the hmmpgmd program), and it must be equal to the number of worker nodes that will connect to the master node. Hmmpgmd_shard will signal an error if more than num_shards worker nodes try to connect to the master node, or if a search is started when fewer than num_shards workers are connected to the master πŸ‘‘


πŸ’– OPTIONS πŸ’–

  • -h β€” Help; print a brief reminder of command line usage and all available options. your little cheat sheet 🫢
  • --master β€” Run as the master server. main character energy πŸ‘‘
  • --worker <s> β€” Run as a worker, connecting to the master server that is running on IP address <s>.
  • --cport <n> β€” Port to use for communication between clients and the master server. The default is 51371.
  • --wport <n> β€” Port to use for communication between workers and the master server. The default is 51372.
  • --ccncts <n> β€” Maximum number of client connections to accept. The default is 16.
  • --wcncts <n> β€” Maximum number of worker connections to accept. The default is 32.
  • --pid <f> β€” Name of file into which the process id will be written.
  • --seqdb <f> β€” Name of the file (in hmmpgmd format) containing protein sequences. The contents of this file will be cached for searches.
  • --hmmdb <f> β€” Name of the file containing protein HMMs. The contents of this file will be cached for searches.
  • --cpu <n> β€” Number of parallel threads to use (for --worker).
  • --num_shards <n> β€” Number of shards to divide cached sequence database(s) into. HMM databases are not sharded, due to their small size. This option is only valid when the --master option is present, and defaults to 1 if not specified. Hmmpgmd_shard requires that the number of shards be equal to the number of worker nodes, and will give errors if more than num_shards workers attempt to connect to the master node or if a search is started with fewer than num_shards workers connected to the master.
fr fr do not mess with --num_shards unless you're the master, and do not let the worker count drift from it. the daemon will throw errors at you, no cap. πŸ’€

🌈 SEE ALSO 🌈

  • See hmmmpgmd(1) for a description of the base hmmpgmd command and how the daemon should be used.
  • hmmer(1) for a master man page with a list of all the individual man pages for programs in the HMMER package.
  • For complete documentation, see the user guide that came with your HMMER distribution (Userguide.pdf); or see the HMMER web page (http://hmmer.org/).

Copyright (C) 2023 Howard Hughes Medical Institute.

Freely distributed under the BSD open source license.

For additional information on copyright and licensing, see the file called COPYRIGHT in your HMMER source distribution, or see the HMMER web page (http://hmmer.org/).


πŸŽ€ AUTHOR πŸŽ€

http://eddylab.org


and that's the whole vibe bestie πŸ’œ this page ships with HMMER 3.4, dated Aug 2023 β€” iconic, we stan, periodt βœ¨πŸ¦‹πŸŒΈ go shard something 🫢

πŸ“¦ where this page comes from