ADVISE(3PVM)
πΈ 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β value1β don't allow direct links to this task π βοΈPvmAllowDirectβ value2β allow but don't request direct links π«ΆPvmRouteDirectβ value3β 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
- debian bookworm: pvm-dev 3.4.6-5
- ubuntu jammy: pvm-dev 3.4.6-3.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms