def test_transpose3(self): t1 = expr.sparse_diagonal((107, 401)).evaluate() t2 = expr.sparse_diagonal((401, 107)).evaluate() a = expr.transpose(t1) b = expr.transpose(t2) Assert.all_eq(a.glom().todense(), sp.eye(107, 401).transpose().todense()) Assert.all_eq(b.glom().todense(), sp.eye(401, 107).transpose().todense())
def test_reshape8(self): t1 = expr.sparse_diagonal((137, 113)) t2 = expr.sparse_diagonal((113, 137)) a = expr.reshape(t1, (113, 137)) b = expr.reshape(t2, (137, 113)) Assert.all_eq(a.glom().todense(), sp.eye(137, 113).tolil().reshape((113, 137)).todense()) Assert.all_eq(b.glom().todense(), sp.eye(113, 137).tolil().reshape((137, 113)).todense())
def benchmark_cg(ctx, timer): print "#worker:", ctx.num_workers l = int(math.sqrt(ctx.num_workers)) #n = 2000 * 16 n = 500 * ctx.num_workers la = 20 niter = 5 #nonzer = 7 #nz = n * (nonzer + 1) * (nonzer + 1) + n * (nonzer + 2) #density = 0.5 * nz/(n*n) A = expr.rand(n, n) A = (A + expr.transpose(A)) * 0.5 I = expr.sparse_diagonal((n, n)) * la A = A - I #x1 = numpy_cg(A.glom(), niter) util.log_warn('begin cg!') t1 = datetime.now() x2 = conj_gradient(A, niter).force() t2 = datetime.now() cost_time = millis(t1, t2) print "total cost time:%s ms, per iter cost time:%s ms" % ( cost_time, cost_time / niter)
def benchmark_cg(ctx, timer): print "#worker:", ctx.num_workers l = int(math.sqrt(ctx.num_workers)) n = 2000 * 16 #n = 4000 * l la = 20 niter = 5 tile_hint = (n, n/ctx.num_workers) #nonzer = 7 #nz = n * (nonzer + 1) * (nonzer + 1) + n * (nonzer + 2) #density = 0.5 * nz/(n*n) A = expr.rand(n, n, tile_hint=tile_hint) A = (A + expr.transpose(A))*0.5 I = expr.sparse_diagonal((n,n), tile_hint=tile_hint) * la I.force() A = expr.eager(A - I) #x1 = numpy_cg(A.glom(), niter) util.log_warn('begin cg!') t1 = datetime.now() x2 = conj_gradient(A, niter).force() t2 = datetime.now() cost_time = millis(t1,t2) print "total cost time:%s ms, per iter cost time:%s ms" % (cost_time, cost_time/niter)
def test_sparse_scan(self): axis = 1 a = expr.sparse_diagonal(ARRAY_SIZE, dtype=np.float32, tile_hint=tile_hint) c = expr.scan(a, reduce_fn=lambda x, **kw:x.sum(axis=kw['axis']), scan_fn=lambda x, **kw: x.cumsum(axis=kw['axis']), accum_fn=None, axis=axis) print c.glom()
def test_sparse_sum(self): x = expr.sparse_diagonal(ARRAY_SIZE).force() y = x.glom() print y.todense() x = expr.lazify(x) for axis in [None, 0, 1]: y = x.sum(axis) val = y.glom() print val
def test_sparse_operators(self): x = expr.sparse_diagonal(ARRAY_SIZE) #print x.glom().todense() y = x print 'test add' #z = expr.add(x, y) z = expr.add(x, y) print z.glom().todense() print 'test minus' z = expr.sub(x, y) print z.glom().todense() print 'test multiply' z = expr.dot(x, x) print z.glom().todense()