PULSAR  2.0.0
Parallel Ultra-Light Systolic Array Runtime
 All Data Structures Files Functions Typedefs Enumerations Macros Groups
prt_device.h
Go to the documentation of this file.
1 
11 #ifndef PRT_DEVICE_H
12 #define PRT_DEVICE_H
13 
14 #include "prt.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 struct prt_vsa_s;
21 
30 typedef struct prt_device_s {
31  struct prt_vsa_s *vsa; // Back link to the parent VSA.
32  int rank; // Local device number.
33  int accelerator; // Global accelerator number.
34  icl_list_t *vdps; // List of VDPs.
35  icl_list_t *node; // Current node in the VDP list.
36  volatile int finished; // Completion flag.
37  int agent_rank; // Rank of the communication agent.
38 } prt_device_t;
39 
40 prt_device_t* prt_device_new(int rank, int accelerator, int agent_rank);
41 void prt_device_delete(prt_device_t *device);
42 void prt_device_cycle(prt_device_t *device);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif /* PRT_DEVICE_H */