55 static int prime[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53};
59 #define MAXPRIMES (sizeof(prime)/sizeof(int)) 68 if(QMP_get_number_of_nodes() == 1) {
86 ndim2 = QMP_get_allocated_number_of_dimensions();
87 nsquares2 = QMP_get_allocated_dimensions();
95 printf(
"LATTICE SIZE DOESN'T FIT GRID\n");
116 while( (
n%
prime[k]!=0) && (k>0) ) --k;
137 fprintf(stderr,
"LAYOUT: Not enough prime factors in lattice dimensions\n");
166 if(QMP_get_msg_passing_type()==QMP_GRID) {
177 if(!QMP_logical_topology_is_declared()) {
212 return QMP_get_node_number_from(
mcoord);
239 m = QMP_get_logical_coordinates_from(node);
269 fprintf(stderr,
"get_coords: error in layout!\n");
273 fprintf(stderr,
"%i\t%i", node, si);
void get_coords(int x[], int node, int index)
static void setup_hyper_prime(int len[], int nd, int numnodes)
static void setup_qmp_fixed(int len[], int nd, int numnodes)
void exit(int) __attribute__((noreturn))
char * index(const char *, int)
void * malloc(size_t __size) __attribute__((__warn_unused_result__)) __attribute__((alloc_size(1)))
int printf(const char *,...) __attribute__((__format__(__printf__
static __inline__ size_t p
int fprintf(FILE *, const char *,...) __attribute__((__format__(__printf__
int setup_layout(int len[], int nd, int numnodes)
int node_index(const int x[])
int node_number(const int x[])
static void setup_qmp_grid(int len[], int nd, int numnodes)