Skip to content

Commit

Permalink
[demos] parallelize burgers_ei demo
Browse files Browse the repository at this point in the history
  • Loading branch information
sdrave committed Jan 11, 2016
1 parent 84ddd8c commit 3cd1e97
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/pymordemos/burgers_ei.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@
--vx=XSPEED Speed in x-direction [default: 1].
--vy=YSPEED Speed in y-direction [default: 1].
--ipython-engines=COUNT If positive, the number of IPython cluster engines to use
for parallel greedy search. If zero, no parallelization
is performed. [default: 0]
--ipython-profile=PROFILE IPython profile to use for parallelization.
"""

from __future__ import absolute_import, division, print_function
Expand All @@ -90,6 +96,7 @@
from pymor.domaindiscretizers.default import discretize_domain_default
from pymor.grids.rect import RectGrid
from pymor.grids.tria import TriaGrid
from pymor.parallel.default import new_parallel_pool
from pymor.reductors.basic import reduce_generic_rb, reduce_to_subbasis
from pymor.vectorarrays.numpy import NumpyVectorArray

Expand All @@ -111,6 +118,7 @@ def burgers_demo(args):
args['--test'] = int(args['--test'])
args['--vx'] = float(args['--vx'])
args['--vy'] = float(args['--vy'])
args['--ipython-engines'] = int(args['--ipython-engines'])
args['EXP_MIN'] = int(args['EXP_MIN'])
args['EXP_MAX'] = int(args['EXP_MAX'])
args['EI_SNAPSHOTS'] = int(args['EI_SNAPSHOTS'])
Expand Down Expand Up @@ -150,12 +158,14 @@ def burgers_demo(args):
legend = legend + ('exponent: {}'.format(mu['exponent']),)
discretization.visualize(Us, legend=legend, title='Detailed Solutions', block=True)

pool = new_parallel_pool(ipython_num_engines=args['--ipython-engines'], ipython_profile=args['--ipython-profile'])
ei_discretization, ei_data = interpolate_operators(discretization, ['operator'],
discretization.parameter_space.sample_uniformly(args['EI_SNAPSHOTS']), # NOQA
error_norm=discretization.l2_norm,
target_error=1e-10,
max_interpolation_dofs=args['EISIZE'],
product=discretization.l2_product)
product=discretization.l2_product,
pool=pool)

if args['--plot-ei-err']:
print('Showing some EI errors')
Expand Down Expand Up @@ -188,7 +198,8 @@ def reductor(discretization, rb, extends=None):

greedy_data = greedy(discretization, reductor, discretization.parameter_space.sample_uniformly(args['SNAPSHOTS']),
use_estimator=False, error_norm=lambda U: np.max(discretization.l2_norm(U)),
extension_algorithm=extension_algorithm, max_extensions=args['RBSIZE'])
extension_algorithm=extension_algorithm, max_extensions=args['RBSIZE'],
pool=pool)

rb_discretization, reconstructor = greedy_data['reduced_discretization'], greedy_data['reconstructor']

Expand Down

0 comments on commit 3cd1e97

Please sign in to comment.