allpairs_multicore(1)

πŸ“¦
version 9.9 Β· 3 versions
, in debian bookworm, ubuntu jammy, ubuntu noble

🌸 allpairs_multicore 🌸

okay bestie πŸ’– this is the manual for allpairs_multicore, a tool from the Cooperative Computing Tools πŸŽ€ and yes it is as iconic as it sounds.


✨ NAME ✨

allpairs_multicore - runs the All-Pairs workflow in parallel on a multicore machine πŸ’…


🧚 SYNOPSIS 🧚

allparis_multicore [options] <set A> <set B> <compare function>

πŸ’œ DESCRIPTION πŸ’œ

okay so allpairs_multicore takes two sets, <set A> and <set B>, and computes the Cartesian product of them 🌈 (aka every possible pairing, no cap). It builds a matrix where each cell M[i,j] holds the output of the function F (<compare function>) run on A[i] (an item in <set A>) and B[j] (an item in <set B>). The whole matrix gets printed to standard output, one comparison result per line, along with the associated X and Y indices. πŸ¦‹

for big sets, it uses as many cores as you have available and carefully manages virtual memory to exploit locality and avoid thrashing πŸ”₯ that's the main character energy right there. because of this, you should be prepared for the results to come back in any order πŸ™ˆ

bestie, the results can literally show up in any order, so don't go expecting them to be sorted. πŸ’€

if you want to go even harder and get the parallelism of All-Pairs workflows across multiple (multicore) machines, check out allpairs_master(1) πŸš€


πŸŽ€ OPTIONS πŸŽ€

  • -b, --block-size=<items> β€” this is how many items you want held in memory at once 🧠 (default: 50% of RAM)
  • -c, --cores=<cores> β€” how many cores you want it to use πŸ’ͺ (default: # of cores in machine)
  • -e, --extra-args=<args> β€” extra arguments you want passed along to the comparison program πŸ“
  • -d, --debug=<flag> β€” turns on debugging for this subsystem πŸ”
  • -v, --version β€” shows the program version ✨
  • -h, --help β€” displays this message 🫢

🚦 EXIT STATUS 🚦

on success, it returns zero πŸ₯³ on failure, it returns non-zero 😭


πŸ“Έ EXAMPLES πŸ“Έ

okay let's say you have a whole lot of files you want to compare to each other, named a, b, c, and so on 🌸 and you also have a program called compareit that, when invoked as compareit a b, compares files a and b and spits out some output summarizing the difference between the two, like this:

a b are 45 percent similar

to use the allpairs framework, make a file called set.list that lists each of your files, one per line:

a
b
c
...

then invoke allpairs_multicore like this:

% allpairs_multicore set.list set.list compareit

the framework will carry out all possible comparisons of the objects and print the results one by one πŸ’… (note that the first two columns are the X and Y indices in the resulting matrix):

1    1    a a are 100 percent similar
1    2    a b are 45 percent similar
1    3    a c are 37 percent similar
...

The Cooperative Computing Tools are Copyright (C) 2005-2019 The University of Notre Dame. πŸ’œ This software is distributed under the GNU General Public License. See the file COPYING for details πŸ“œ


πŸ”— SEE ALSO πŸ”—


bestie that's the whole tea β˜•πŸ«Ά this page came from CCTools 8.0.0 DEVELOPMENT, and the manual is allpairs_multicore(1). love you, mwah πŸ’‹πŸŒˆβœ¨

πŸ“¦ where this page comes from