upload exercises
This commit is contained in:
parent
32ad3f2662
commit
d17339a560
75 changed files with 773 additions and 0 deletions
27
exercises/exerciseB/README.md
Executable file
27
exercises/exerciseB/README.md
Executable file
|
@ -0,0 +1,27 @@
|
|||
# Exercise B: multiprocessing and map
|
||||
|
||||
Objective: introduce `map` and `Pool.map`.
|
||||
|
||||
In the `numerical_integration.py` file, we give Python code that calculates
|
||||
the integral of a function in two different ways: numerically and analytically.
|
||||
|
||||
The given functions are `integrate` (numerical integration), `f` (the function
|
||||
to integrate), and `F` (the analytical integral).
|
||||
|
||||
We want to check the precision of the numerical integration as a function of
|
||||
the number of steps in the domain. To do this, we calculate and print the
|
||||
relative differences between the analytic result and the numerical result
|
||||
for different values of the number of steps.
|
||||
|
||||
**TASKS**:
|
||||
0. Read `numerical_integration.py` and familiarize yourselves with the code.
|
||||
1. Update the `main` function so that it calculates the numerical error without
|
||||
any parallelization. You can use a for loop or `map`.
|
||||
2. Note the execution time for this serial implementation.
|
||||
3. Implement the parallel version using `multiprocessing.Pool`.
|
||||
4. Compare the timing for the parallel version with the serial time.
|
||||
What speed-up did you get?
|
||||
|
||||
**BONUS TASKS (very optional)**:
|
||||
5. Implement a parallel version with threads (using `multiprocessing.pool.ThreadPool`).
|
||||
6. Time this version, and hypothetize about the result.
|
Loading…
Add table
Add a link
Reference in a new issue