Пример #1
0
def worker(current_rank, num_ranks, and_lco):
    target_rank = (current_rank + 1) % num_ranks
    array = np.empty((128//NUM_TRY, 1024, 1024))
    finish_copy = hpx.Future()
    some_marshalled_action(hpx.THERE(target_rank), array, sync='async', lsync_lco=finish_copy, rsync_lco=and_lco)
    finish_copy.wait()
    print("worker {0} sends {1} bytes".format(current_rank, array.nbytes))
    return hpx.SUCCESS
Пример #2
0
def main():
    start = hpx.time_now()
    num_ranks = hpx.get_num_ranks()
    and_lco = hpx.And(num_ranks)
    for i in range(num_ranks):
        worker(hpx.THERE(i), i, num_ranks, rsync_lco=and_lco)
    and_lco.wait()
    print(hpx.time_elapsed_ms(start))
    hpx.exit()
Пример #3
0
def create_node(low, high):
    # this function returns a GlobalMemory object for the created node
    where = map_bound_to_locality(low, high)
    rtv = hpx.GlobalMemory.alloc_local_at(1, 1, node_type, hpx.THERE(where))
    vals = np.array(
        [(hpx.NULL().addr, hpx.NULL().addr, low, high,
          np.array([(0.0, 0.0, 0.0)], dtype=moment_type), hpx.NULL().addr, 0)],
        dtype=node_type)
    rtv[0].set(vals)
    return rtv
Пример #4
0
def main():
    num_ranks = hpx.get_num_ranks()
    print(num_ranks)
    array = hpx.GlobalMemory.alloc_cyclic(num_ranks, (64, 1024, 1024),
                                          dtype=np.dtype(float))

    start = hpx.time_now()
    and_lco = hpx.And(num_ranks)
    for i in range(num_ranks):
        copy_from_array(hpx.THERE(i), array, i, num_ranks, rsync_lco=and_lco)
    and_lco.wait()
    print(hpx.time_elapsed_ms(start))
    hpx.exit()
Пример #5
0
def main_action():
    num_node = hpx.get_num_ranks()
    print("program runs on {0} nodes".format(num_node))
    step_size = (high - low) / total_cells
    cell_per_node = total_cells // num_node

    result_lco = hpx.Reduce(num_node, (1, ), np.dtype(float), result_init,
                            result_op)
    for i in range(num_node):
        calculate_integral(hpx.THERE(i), low + i * step_size * cell_per_node,
                           step_size, cell_per_node, result_lco)
    print(result_lco.get())
    print(fint(high) - fint(low))
    hpx.exit()
Пример #6
0
def worker(current_rank, num_ranks):
    target_rank = (current_rank + 1) % num_ranks
    array = np.array((128, 1024, 1024))
    some_marshalled_action(hpx.THERE(target_rank), array, sync='rsync')
    print("worker {0} sends {1} bytes".format(current_rank, array.nbytes))
    return hpx.SUCCESS