LAPI_Address_init Sous-routine
Objectif
Crée une table d'adresses distante.
Bibliothèque
Bibliothèque de disponibilité (liblapi_r.a)
Syntaxe C
#include <lapi.h>
int LAPI_Address_init(hndl, my_addr, add_tab)
lapi_handle_t hndl;
void *my_addr;
void *add_tab[ ];Syntaxe FORTRAN
include 'lapif.h'
LAPI_ADDRESS_INIT(hndl, my_addr, add_tab, ierror)
INTEGER hndl
INTEGER (KIND=LAPI_ADDR_TYPE) :: my_addr
INTEGER (KIND=LAPI_ADDR_TYPE) :: add_tab(*)
INTEGER ierrorDescriptif
Communication de la collectivité Type of call: (blocage)
LAPI_Address_init échange des adresses virtuelles entre les tâches d'une application parallèle. Utilisez cette sous-routine pour créer des tables d'éléments tels que des gestionnaires d'en-tête, des compteurs cible et des adresses de mémoire tampon de données.
LAPI_Address_init est un appel de collectivité via le descripteur LAPI hndl, qui remplit la table add_tab avec les entrées d'adresse virtuelle fournies par chaque tâche. Les appels collectifs doivent être effectués dans le même ordre pour toutes les tâches participantes.
Les adresses stockées dans la table add_tab sont transmises à l'aide du paramètre my_addr . Une fois cet appel terminé, add_tab [ i ] contient l'entrée d'adresse virtuelle fournie par la tâche i. Le tableau est opaque pour l'utilisateur.
Paramètres
- ENTREE
- hndl
- Indique le descripteur LAPI.
- mon_adresse
- Indique l'entrée fournie par chaque tâche. La valeur de ce paramètre peut être NULL (en C) ou LAPI_ADDR_NULL (en FORTRAN).
- Sortie
- onglet supplémentaire
- Indique la table d'adresses contenant les adresses qui doivent être fournies par toutes les tâches. add_tab est un tableau de pointeurs dont la taille est supérieure ou égale à NUM_TASKS. La valeur de ce paramètre ne peut pas être NULL (en C) ou LAPI_ADDR_NULL (en FORTRAN).
- erreur ierror
- Indique un code retour FORTRAN. Il s'agit toujours du dernier paramètre.
Exemples C
lapi_handle_t hndl; /* the LAPI handle */
void *addr_tbl[NUM_TASKS]; /* the table for all tasks' addresses */
lapi_cntr_t tgt_cntr; /* the target counter */
⋮
LAPI_Address_init(hndl, (void *)&tgt_cntr, addr_tbl);
/* for communication with task t, use addr_tbl[t] */
/* as the address of the target counter */
⋮
Pour une combinaison de noeuds 32 bits et 64 bits, utilisez LAPI_Address_init64.Valeurs renvoyées
- SUCCÈS_LAPIEU
- Indique que l'appel de fonction a abouti.
- LAPI_ERR_COLLECTIVE_PSS
- Indique qu'un appel de collectivité a été effectué en mode de sous-système persistant (PSS).
- LAPI_ERR_HNDL_INVALID
- Indique que le hndl transmis n'est pas valide (non initialisé ou à l'état arrêté).
- LAPI_ERR_RET_PTR_NULL
- Indique que la valeur du pointeur add_tab est NULL (en C) ou que la valeur de add_tab est LAPI_ADDR_NULL (en FORTRAN).
Emplacement
- /usr/lib/liblapi_r.a