Skip to content

Commit cad27bd

Browse files
committed
Examples with directed graphs.
1 parent 8795b1d commit cad27bd

5 files changed

+993
-73
lines changed
+254
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
{
2+
"metadata": {
3+
"name": "",
4+
"signature": "sha256:235c7ba639f997642f2003a7d4d2a6512f5fe9e1441f16f8441fb5d66530c78c"
5+
},
6+
"nbformat": 3,
7+
"nbformat_minor": 0,
8+
"worksheets": [
9+
{
10+
"cells": [
11+
{
12+
"cell_type": "heading",
13+
"level": 1,
14+
"metadata": {},
15+
"source": [
16+
"DAG Job Accounting Time Comparison"
17+
]
18+
},
19+
{
20+
"cell_type": "markdown",
21+
"metadata": {},
22+
"source": [
23+
"Brendan Smithyman | January 2015"
24+
]
25+
},
26+
{
27+
"cell_type": "code",
28+
"collapsed": false,
29+
"input": [
30+
"import numpy as np\n",
31+
"import networkx\n",
32+
"from zephyr.Problem import SeisFDFDProblem\n",
33+
"import time"
34+
],
35+
"language": "python",
36+
"metadata": {},
37+
"outputs": [],
38+
"prompt_number": 1
39+
},
40+
{
41+
"cell_type": "heading",
42+
"level": 2,
43+
"metadata": {},
44+
"source": [
45+
"Plotting configuration"
46+
]
47+
},
48+
{
49+
"cell_type": "code",
50+
"collapsed": false,
51+
"input": [
52+
"import matplotlib.pyplot as plt\n",
53+
"import matplotlib.cm as cm\n",
54+
"import matplotlib\n",
55+
"%matplotlib inline"
56+
],
57+
"language": "python",
58+
"metadata": {},
59+
"outputs": [],
60+
"prompt_number": 2
61+
},
62+
{
63+
"cell_type": "heading",
64+
"level": 2,
65+
"metadata": {},
66+
"source": [
67+
"System / modelling configuration"
68+
]
69+
},
70+
{
71+
"cell_type": "code",
72+
"collapsed": false,
73+
"input": [
74+
"cellSize = 1 # m\n",
75+
"freqs = [2e2] # Hz\n",
76+
"density = 2700 # units of density\n",
77+
"Q = np.inf # can be inf\n",
78+
"nx = 164 # count\n",
79+
"nz = 264 # count\n",
80+
"freeSurf = [False, False, False, False] # t r b l\n",
81+
"dims = (nx,nz) # tuple\n",
82+
"nPML = 32\n",
83+
"rho = np.fliplr(np.ones(dims) * density)\n",
84+
"nfreq = len(freqs) # number of frequencies\n",
85+
"nky = 48 # number of y-directional plane-wave components\n",
86+
"nsp = nfreq * nky # total number of 2D subproblems\n",
87+
"\n",
88+
"velocity = 2500 # m/s\n",
89+
"vanom = 500 # m/s\n",
90+
"cPert = np.zeros(dims)\n",
91+
"cPert[(nx/2)-20:(nx/2)+20,(nz/2)-20:(nz/2)+20] = vanom\n",
92+
"c = np.fliplr(np.ones(dims) * velocity)\n",
93+
"cFlat = c\n",
94+
"c += np.fliplr(cPert)\n",
95+
"cTrue = c\n",
96+
"\n",
97+
"srcs = np.array([np.ones(101)*32, np.zeros(101), np.linspace(32, 232, 101)]).T\n",
98+
"recs = np.array([np.ones(101)*132, np.zeros(101), np.linspace(32, 232, 101)]).T\n",
99+
"nsrc = len(srcs)\n",
100+
"nrec = len(recs)\n",
101+
"recmode = 'fixed'\n",
102+
"\n",
103+
"geom = {\n",
104+
" 'src': srcs,\n",
105+
" 'rec': recs,\n",
106+
" 'mode': 'fixed',\n",
107+
"}\n",
108+
"\n",
109+
"cache = False\n",
110+
"cacheDir = '.'\n",
111+
"\n",
112+
"parFac = 1\n",
113+
"\n",
114+
"# Base configuration for all subproblems\n",
115+
"systemConfig = {\n",
116+
" 'dx': cellSize, # m\n",
117+
" 'dz': cellSize, # m\n",
118+
" 'c': c.T, # m/s\n",
119+
" 'rho': rho.T, # density\n",
120+
" 'Q': Q, # can be inf\n",
121+
" 'nx': nx, # count\n",
122+
" 'nz': nz, # count\n",
123+
" 'freeSurf': freeSurf, # t r b l\n",
124+
" 'nPML': nPML,\n",
125+
" 'geom': geom,\n",
126+
" 'cache': cache,\n",
127+
" 'cacheDir': cacheDir,\n",
128+
" 'freqs': freqs,\n",
129+
" 'nky': nky,\n",
130+
" 'parFac': parFac,\n",
131+
"}"
132+
],
133+
"language": "python",
134+
"metadata": {},
135+
"outputs": [],
136+
"prompt_number": 3
137+
},
138+
{
139+
"cell_type": "code",
140+
"collapsed": false,
141+
"input": [
142+
"sp = SeisFDFDProblem(systemConfig)"
143+
],
144+
"language": "python",
145+
"metadata": {},
146+
"outputs": [],
147+
"prompt_number": 4
148+
},
149+
{
150+
"cell_type": "code",
151+
"collapsed": false,
152+
"input": [
153+
"tick = time.time()\n",
154+
"jobs, G = sp.forwardAccumulate()\n",
155+
"sp.par['lview'].wait([j for i in jobs['endJobs'].values() for j in i])\n",
156+
"tock = time.time()\n",
157+
"print('Time elapsed: %r'%(tock - tick))"
158+
],
159+
"language": "python",
160+
"metadata": {},
161+
"outputs": [
162+
{
163+
"output_type": "stream",
164+
"stream": "stdout",
165+
"text": [
166+
"Time elapsed: 350.7763981819153\n"
167+
]
168+
}
169+
],
170+
"prompt_number": 5
171+
},
172+
{
173+
"cell_type": "code",
174+
"collapsed": false,
175+
"input": [
176+
"parFac = 2\n",
177+
"systemConfig.update({'parFac': parFac})"
178+
],
179+
"language": "python",
180+
"metadata": {},
181+
"outputs": [],
182+
"prompt_number": 6
183+
},
184+
{
185+
"cell_type": "code",
186+
"collapsed": false,
187+
"input": [
188+
"tick = time.time()\n",
189+
"jobs, G = sp.forwardAccumulate()\n",
190+
"sp.par['lview'].wait([j for i in jobs['endJobs'].values() for j in i])\n",
191+
"tock = time.time()\n",
192+
"print('Time elapsed: %r'%(tock - tick))"
193+
],
194+
"language": "python",
195+
"metadata": {},
196+
"outputs": [
197+
{
198+
"output_type": "stream",
199+
"stream": "stdout",
200+
"text": [
201+
"Time elapsed: 343.0300979614258\n"
202+
]
203+
}
204+
],
205+
"prompt_number": 7
206+
},
207+
{
208+
"cell_type": "code",
209+
"collapsed": false,
210+
"input": [
211+
"parFac = 3\n",
212+
"systemConfig.update({'parFac': parFac})"
213+
],
214+
"language": "python",
215+
"metadata": {},
216+
"outputs": [],
217+
"prompt_number": 8
218+
},
219+
{
220+
"cell_type": "code",
221+
"collapsed": false,
222+
"input": [
223+
"tick = time.time()\n",
224+
"jobs, G = sp.forwardAccumulate()\n",
225+
"sp.par['lview'].wait([j for i in jobs['endJobs'].values() for j in i])\n",
226+
"tock = time.time()\n",
227+
"print('Time elapsed: %r'%(tock - tick))"
228+
],
229+
"language": "python",
230+
"metadata": {},
231+
"outputs": [
232+
{
233+
"output_type": "stream",
234+
"stream": "stdout",
235+
"text": [
236+
"Time elapsed: 350.03370904922485\n"
237+
]
238+
}
239+
],
240+
"prompt_number": 9
241+
},
242+
{
243+
"cell_type": "code",
244+
"collapsed": false,
245+
"input": [],
246+
"language": "python",
247+
"metadata": {},
248+
"outputs": []
249+
}
250+
],
251+
"metadata": {}
252+
}
253+
]
254+
}

DAG Job Accounting.ipynb

+46-55
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)