LAPI_Address_init64 Subroutine

Propósito

Cria uma tabela de endereço remoto de 64-bit.

Biblioteca

Biblioteca de Disponibilidade (liblapi_r.a)

Sintaxe 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;

Sintaxe 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

Descrição

Type of call: comunicação coletiva (bloqueio)

LAPI_Address_init64 troca endereços virtuais entre uma mistura de 32-bit e 64-bit tarefas de um aplicativo paralelo. Use este subroutine para criar 64-bit tabelas de tais itens como manipuladores de cabeçalho, contadores de destino e endereços de buffer de dados.

LAPI_Address_init64 é uma chamada coletiva sobre a alça LAPI hndl, que preenche a tabela de 64-bit bits add_tab com as entradas de endereço virtual que cada tarefa fornece. As chamadas coletivas devem ser feitas na mesma ordem em todas as tarefas participantes.

Os endereços que são armazenados na tabela add_tab são passados no uso do parâmetro my_addr . Após a conclusão desta chamada, add_tab [i] contém a entrada de endereço virtual que foi fornecida pela tarefa i. A matriz é opaca para o usuário.

Parâmetros

INPUT
hndl
Especifica a alça LAPI.
my_addr
Especifica a entrada de endereço que é fornecida por cada tarefa. O valor deste parâmetro pode ser NULL (em C) ou LAPI_ADDR_NULL (em FORTRAN). Para garantir a interoperabilidade 32-bit/64-bit , ele é passado como um tipo lapi_long_t em C.
SAÍDA
add_tab
Especifica a tabela de endereços 64-bit que contém os 64-bit valores fornecidos por todas as tarefas. add_tab é uma matriz do tipo lapi_long_t (em C) ou LAPI_LONG_LONG_TYPE (em FORTRAN). O tamanho de add_tab é maior ou igual a NUM_TASKS. O valor deste parâmetro não pode ser NULL (em C) ou LAPI_ADDR_NULL (em FORTRAN).
ierror
Especifica um código de retorno FORTRAN. Este é sempre o último parâmetro.

Exemplos de C

Para transferir coletivamente os endereços do contador de destino para uso em uma chamada API de comunicação com um ambiente de tarefa mista (qualquer combinação de 32-bit e 64-bit):
 

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.               */ 
   

Valores De Retorno

LAPI_SUCESSO
Indica que a chamada de função foi concluída com sucesso.
LAPI_ERR_COLLECTIVE_PSS
Indica que uma chamada coletiva foi feita enquanto no modo persistente subsistema (PSS).
LAPI_ERR_HNDL_INVÁLIDA
Indica que o hndl passado em não é válido (não inicializado ou em estado finalizado).
LAPI_ERR_RET_PTR_NULL
Indica que o valor do ponteiro add_tab é NULL (em C) ou que o valor de add_tab é LAPI_ADDR_NULL (no FORTRAN).

Local

/usr/lib/liblapi_r.a