Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Have more overview #11

Open
4 tasks
jhidding opened this issue Apr 12, 2023 · 0 comments
Open
4 tasks

Have more overview #11

jhidding opened this issue Apr 12, 2023 · 0 comments

Comments

@jhidding
Copy link
Collaborator

The course is sectioned:

Introduction - Benchmarking: What Why (more speed!)
Computing Pi - Threading/MP: How (low level)
Delayed - Data flow: How (human level: managing complexity)
Whatever and exercise.

  • Computing Pi
  • Threading/MP: needs the overview
  • Delayed
  • Dataflow

  • Concepts
    • chunking
    • dependency diagram
    • natural parallelism
  • Benchmarking
    • timing your code
    • checking memory consumption
  • First make things fast
    • numpy vectorization
    • numba just-in-time
  • Then make things run parallel
    • threading
      • OS dependent internal mechanism for running functions concurrently (i.e. fork)
      • - need to lift the GIL somehow
      • + low on resources
      • + shared memory
    • multiprocessing
      • Starts a new process (like from the shell) and sets up communication channels in other ways
      • - large overhead
      • - need for data serialisation
      • - complicates shared memory
      • - less flexible: for instance no lambdas
      • + circumvents the GIL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant