Navigation auf uzh.ch

Suche

Central IT Science IT

Code Optimization and Parallelization

Is your Python, R or C/C++ code too slow or does it require a lot of memory?

We can assist you in profiling your code, identifying the the pain points, and assessing the feasibility of techniques to reduce the runtime and/or the memory footprint.

Example of techniques used to reduce the runtime:

  • Memoization, i.e., storing the result of expensive function calls
  • Reduction of the memory swapping
  • Usage of better data structures (e.g., lists, sets, hash tables)
  • Usage of performant libraries (e.g., OpenMP, Cython, Numba, NumPy, Pandas, dplyr)
  • Parallel, distributed, and GPU computing (e.g., MPI, IPython Parallel, Dask) on the desired infrastructure, for example ScienceCloud or ScienceCluster
  • Functional and domain decomposition

Examples of techniques used to reduce the memory footprint:

  • Usage of better data structures (e.g., lists, sets, hash tables)
  • Out of memory processing combined with specialized file formats (e.g., memory mapped files, HDF5, SQLite)
  • Lazy evaluation and data batch processing
  • Distributed computing (e.g., MPI, IPython Parallel, Dask)

How to initiate an expert service

  • Get in contact with Science IT and explain briefly what type of service you are interested in together with a short description of your use case and needs  contact Science IT
  • Based on the information you provided, your request will be routed to a suitable expert, who gets in contact with you to follow up on the remaining steps

Terms and conditions

  • Efforts-based costs
  • Expert services are restricted to UZH researchers and groups
  • More details (incl. costs and agreement templates) are available in the UZH Intranet