LAPI_Address_init64 Sous-routine

Objectif

Crée une table d'adresses distante 64 bits.

Bibliothèque

Bibliothèque de disponibilité (liblapi_r.a)

Syntaxe C

#include <lapi.h>
 
int LAPI_Address_init64(hndl, my_addr, add_tab)
lapi_handle_t  hndl;
lapi_long_t    my_addr;
lapi_long_t   *add_tab;

Syntaxe FORTRAN

include 'lapif.h'
 
LAPI_ADDRESS_INIT64(hndl, my_addr, add_tab, ierror)
INTEGER hndl
INTEGER (KIND=LAPI_ADDR_TYPE) :: my_addr
INTEGER (KIND=LAPI_LONG_LONG_TYPE) :: add_tab(*)
INTEGER ierror

Descriptif

Communication de la collectivité Type of call: (blocage)

LAPI_Address_init64 échange des adresses virtuelles entre une combinaison de tâches 32 bits et 64 bits d'une application parallèle. Utilisez cette sous-routine pour créer des tables 64 bits 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_init64 est un appel de collectivité sur le descripteur LAPI hndl, qui remplit la table 64 bits 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 d'adresse fournie par chaque tâche. La valeur de ce paramètre peut être NULL (en C) ou LAPI_ADDR_NULL (en FORTRAN). Pour garantir l'interopérabilité 32-bit/64-bit , elle est transmise en tant que type lapi_long_t dans C.
Sortie
onglet supplémentaire
Indique la table d'adresses 64 bits qui contient les valeurs 64 bits fournies par toutes les tâches. add_tab est un tableau de type lapi_long_t (en C) ou LAPI_LONG_LONG_TYPE (en FORTRAN). La taille de add_tab 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

Pour transférer collectivement des adresses de compteur cible à utiliser dans un appel d'API de communication avec un environnement de tâche mixte (toute combinaison de 32 bits et 64 bits):
 

lapi_handle_t hndl;                /* the LAPI handle                    */
lapi_long_t   addr_tbl[NUM_TASKS]; /* the table for all tasks' addresses */
lapi_long_t   tgt_cntr;            /* the target counter                 */
      
⋮
      
LAPI_Address_init64(hndl, (lapi_long_t)&tgt_cntr, addr_tbl);
      
/* For communication with task t, use addr_tbl[t] as the address */ 
/* of the target counter. For mixed (32-bit and 64-bit) jobs,    */ 
/* use the LAPI_Xfer subroutine for communication.               */ 
   

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