Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.

Commit 24b176d

Browse files
author
Ehsan Totoni
committed
no barrier time
1 parent 2d37924 commit 24b176d

4 files changed

Lines changed: 28 additions & 0 deletions

File tree

hpat/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import numba
44
from numba import *
55
import hpat.dict_ext
6+
import hpat.distributed_api
7+
from hpat.distributed_api import dist_time
68
from hpat.dict_ext import DictIntInt, DictInt32Int32, dict_int_int_type, dict_int32_int32_type
79
import hpat.str_ext
810

hpat/_distributed.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ int64_t hpat_dist_get_start(int64_t total, int num_pes, int node_id);
1010
int64_t hpat_dist_get_end(int64_t total, int num_pes, int node_id);
1111
int64_t hpat_dist_get_node_portion(int64_t total, int num_pes, int node_id);
1212
double hpat_dist_get_time();
13+
double hpat_get_time();
1314
MPI_Datatype get_MPI_typ(int typ_enum);
1415
int get_elem_size(int type_enum);
1516
int hpat_dist_reduce_i4(int value);
@@ -52,6 +53,8 @@ PyMODINIT_FUNC PyInit_hdist(void) {
5253
PyLong_FromVoidPtr((void*)(&hpat_dist_get_node_portion)));
5354
PyObject_SetAttrString(m, "hpat_dist_get_time",
5455
PyLong_FromVoidPtr((void*)(&hpat_dist_get_time)));
56+
PyObject_SetAttrString(m, "hpat_get_time",
57+
PyLong_FromVoidPtr((void*)(&hpat_get_time)));
5558

5659
PyObject_SetAttrString(m, "hpat_dist_reduce_i4",
5760
PyLong_FromVoidPtr((void*)(&hpat_dist_reduce_i4)));
@@ -140,6 +143,12 @@ double hpat_dist_get_time()
140143
return wtime;
141144
}
142145

146+
double hpat_get_time()
147+
{
148+
double wtime;
149+
wtime = MPI_Wtime();
150+
return wtime;
151+
}
143152

144153
int hpat_dist_reduce_i4(int value)
145154
{

hpat/distributed_api.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ def dist_exscan(value):
4646
def dist_setitem(arr, index, val):
4747
return 0
4848

49+
def dist_time():
50+
return time.time()
51+
4952
def irecv():
5053
return 0
5154

@@ -118,6 +121,13 @@ def generic(self, args, kws):
118121
assert len(args)==0
119122
return signature(types.float64, *args)
120123

124+
@infer_global(dist_time)
125+
class DistDistTime(AbstractTemplate):
126+
def generic(self, args, kws):
127+
assert not kws
128+
assert len(args)==0
129+
return signature(types.float64, *args)
130+
121131
@infer_global(dist_cumsum)
122132
@infer_global(dist_cumprod)
123133
class DistCumsumprod(AbstractTemplate):

hpat/distributed_lower.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
ll.add_symbol('hpat_dist_get_end', hdist.hpat_dist_get_end)
1616
ll.add_symbol('hpat_dist_get_node_portion', hdist.hpat_dist_get_node_portion)
1717
ll.add_symbol('hpat_dist_get_time', hdist.hpat_dist_get_time)
18+
ll.add_symbol('hpat_get_time', hdist.hpat_get_time)
1819
ll.add_symbol('hpat_dist_reduce_i4', hdist.hpat_dist_reduce_i4)
1920
ll.add_symbol('hpat_dist_reduce_i8', hdist.hpat_dist_reduce_i8)
2021
ll.add_symbol('hpat_dist_reduce_f4', hdist.hpat_dist_reduce_f4)
@@ -101,6 +102,12 @@ def lower_dist_arr_reduce(context, builder, sig, args):
101102

102103
@lower_builtin(time.time)
103104
def dist_get_time(context, builder, sig, args):
105+
fnty = lir.FunctionType(lir.DoubleType(), [])
106+
fn = builder.module.get_or_insert_function(fnty, name="hpat_get_time")
107+
return builder.call(fn, [])
108+
109+
@lower_builtin(distributed_api.dist_time)
110+
def dist_get_dist_time(context, builder, sig, args):
104111
fnty = lir.FunctionType(lir.DoubleType(), [])
105112
fn = builder.module.get_or_insert_function(fnty, name="hpat_dist_get_time")
106113
return builder.call(fn, [])

0 commit comments

Comments
 (0)