HPL_reduce(3)

πŸ“¦ version 2.2, in fedora 43, fedora 44

πŸ’– HPL_reduce(3) β€” the HPL Library Functions era πŸ’–

okay bestie, sit down, hydrate, and let me tell you about HPL_reduce β€” literally one of the HPL Library Functions and honestly? she's giving reduce operation. that's it, that's the whole NAME section, no notes πŸ’…


✨ SYNOPSIS ✨

#include "hpl.h"

int HPL_reduce( void * BUFFER, const int COUNT, const HPL_T_TYPE DTYPE,
const HPL_T_OP OP, const int ROOT, MPI_Comm COMM );

look at her. six arguments. main character energy fr fr πŸ‘‘


🌸 DESCRIPTION 🌸

so HPL_reduce does a global reduce operation across all processes of a group. slay. that's the job. that's what she does.

but here's the part you gotta hear, bestie β€” the input buffer is used as a workarray. which means in all processes but the accumulating process, your original data gets corrupted. 😭 not a vibe, just a fact. she's destructive like that. lowkey iconic, highkey dangerous.


πŸŽ€ ARGUMENTS πŸŽ€

  • BUFFER (local input/output) void * β€” on entry, BUFFER points to the buffer to be reduced. on exit, and in the process of rank ROOT, this array holds the reduced data πŸ’–. this buffer is also used as workspace during the operation in the other processes of the group, iykyk.
  • COUNT (global input) const int β€” on entry, COUNT tells you the number of entries in BUFFER. and bestie, COUNT must be at least zero. no negative counts, we don't do that here πŸ™ˆ.
  • DTYPE (global input) const HPL_T_TYPE β€” on entry, DTYPE specifies the type of the buffers operands. the type! of the operands! of the buffers! ✨
  • OP (global input) const HPL_T_OP β€” on entry, OP is a pointer to the local combine function. she's the one doing the combining. the girlboss of the operation 🫢.
  • ROOT (global input) const int β€” on entry, ROOT is the coordinate of the accumulating process. that's the one process keeping the data. the chosen one. the main character 🌟.
  • COMM (global/local input) MPI_Comm β€” the MPI communicator identifying the process collection. the group chat, basically πŸ’¬.

πŸ¦‹ SEE ALSO πŸ¦‹

  • HPL_broadcast (3)
  • HPL_all_reduce (3)
  • HPL_barrier (3)
  • HPL_min (3)
  • HPL_max (3)
  • HPL_sum (3)

go read those too, they're all serving 🌈


heads up bestie: that buffer-as-workarray thing means your original data in every process except ROOT is gone-gone after this call. not corrupted-and-recoverable. corrupting. periodt. πŸ’€

and that's the whole page, bestie!! this one shipped with HPL 2.2 and was dated February 24, 2016 πŸŽ€ β€” yeah she's an elder but she still ate. mwah, stan, bye πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from