allpairs_multicore(1)
πΈ 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
...
π¦ COPYRIGHT π¦
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 π
- The Cooperative Computing Tools ("
http://ccl.cse.nd.edu/software/manuals") - All-Pairs User Manual ("
http://ccl.cse.nd.edu/software/manuals/allpairs.html") allpairs_master(1)
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
- debian bookworm: coop-computing-tools 9.9-2+b4 Β· GPL-2.0-only
- ubuntu jammy: coop-computing-tools 9.9-2ubuntu3 Β· GPL-2.0-only
- ubuntu noble: coop-computing-tools 9.9-4ubuntu4 Β· GPL-2.0-only
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms