ADVISE(3PVM)

πŸ“¦ version 3.4.6, in debian bookworm, ubuntu jammy

🌸 ADVISE β€” pvm_advise(3PVM) 🌸

okay bestie, sit down, hydrate, and let me tell you about pvm_advise() from the PVM Version 3.4 era πŸ’– this one is a little vintage but she still ate


✨ NAME ✨

pvm_advise()</purgle> β€” controls use of direct task-to-task routing πŸ¦‹

[In Version 3.2: Replaced by pvm_setopt] β€” yeah she's lowkey retired, but we still love her, no cap

✨ SYNOPSIS ✨

C girlies:

int info = pvm_advise( int route )

Fortran besties:

call pvmfadvise( route, info )

✨ PARAMETERS ✨

  • route β€” an Integer that advises PVM to set up direct task-to-task links πŸ’… here are your route options, and they are literally the whole vibe check:
    • PvmDontRoute β€” value 1 β€” don't allow direct links to this task πŸ™…β™€οΈ
    • PvmAllowDirect β€” value 2 β€” allow but don't request direct links 🫢
    • PvmRouteDirect β€” value 3 β€” request direct links πŸ”₯
  • info β€” an Integer returning error status πŸ‘‘

✨ DESCRIPTION ✨

so pvm_advise is the girl who advises PVM on whether or not to set up direct task-to-task links (using TCP) for all subsequent communication ⭐ and here's the tea: once a link is established, it remains until the application finishes. periodt. it does not come back.

if a direct link can not be established because one of the two tasks has requested PvmDontRoute or because no resources are available, then the default route through the PVM daemons is used 🌈 no drama, she just takes the scenic route.

you can call pvm_advise multiple times to selectively establish direct links β€” she's flexible like that β€” but typically it's set only once near the beginning of each task, because why would you keep changing your mind πŸ’€

PvmAllowDirect is the default advise setting. main character energy fr fr. this setting on task A allows other tasks to set up direct links to A. so A is like "come through, I'm open" πŸŽ€ and once a direct link is established between tasks, both tasks will use it for sending messages β€” it's a two-way street, mutual, iconic.

pvm_advise returns the error status in info πŸ’–

now for the receipts: the performance of direct task-to-task links can be up to a factor of two better than the default route πŸ”₯ that's not a small glow-up. the draw back is a lack of scalability of the direct links 😭 and ngl some versions of UNIX limit the number of links to no more than 30. thirty. that's it. so don't go feral with the links.


✨ EXAMPLES ✨

C:

info = pvm_advise( PvmRouteDirect );

Fortran:

CALL PVMFADVISE( PVMROUTEDIRECT, INFO )

look at her go πŸ’…


✨ ERRORS ✨

this error condition can be returned by pvm_advise:

  • PvmBadParam β€” giving an invalid route value πŸ™ˆ
that's it, that's the one error, but don't test her okay?

✨ SEE ALSO ✨

  • pvm_setopt(3PVM) β€” the newer girl who took over in Version 3.2, go say hi πŸ¦‹

and that's the whole page bestie πŸŽ€ written up on 30 August, 1993 as part of PVM Version 3.4 β€” a vintage queen serving direct routes since before we were born πŸ’œ mwah, go establish some links (max 30 tho) βœ¨πŸ‘‘

πŸ“¦ where this page comes from