{"id":21343533,"url":"https://github.com/cloudmercato/python-fpb","last_synced_at":"2026-04-19T19:02:15.301Z","repository":{"id":116895183,"uuid":"210224540","full_name":"cloudmercato/python-fpb","owner":"cloudmercato","description":"Python Floating Point Benchmark","archived":false,"fork":false,"pushed_at":"2019-10-07T14:07:59.000Z","size":76,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T15:47:54.012Z","etag":null,"topics":["benchmark","cuda","floating-point","numpy","pandas","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudmercato.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-22T22:51:46.000Z","updated_at":"2021-12-29T23:53:02.000Z","dependencies_parsed_at":"2023-05-31T18:01:00.362Z","dependency_job_id":null,"html_url":"https://github.com/cloudmercato/python-fpb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudmercato%2Fpython-fpb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudmercato%2Fpython-fpb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudmercato%2Fpython-fpb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudmercato%2Fpython-fpb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudmercato","download_url":"https://codeload.github.com/cloudmercato/python-fpb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243818199,"owners_count":20352629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","cuda","floating-point","numpy","pandas","python"],"created_at":"2024-11-22T01:13:38.543Z","updated_at":"2026-04-19T19:02:10.253Z","avatar_url":"https://github.com/cloudmercato.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Python Floating Point Benchmark\n===============================\n\n**FPB** is a simple tool to measure differentt ways to make computation in Python.\nThe goal is to understand what are the best ways to apply or aggregate data accross many ways.\n\nFeatures\n--------\n\nOperations\n~~~~~~~~~~\n\n- **Sum** : Sum of a list/array\n- **Average** : Average of list/array\n- **Max** : Max of list/array\n- **Sinus** : Apply sinus function to a list/array\n- **Sum 2D** : Sum each list/array\n- **Correlation** : Statistical correlation (not yet)\n\nTools and libraries\n~~~~~~~~~~~~~~~~~~~\n\n- **Python** : Standard libraries such as math or builtins\n- `NumPy \u003chttps://numpy.org/\u003e`_ : Fundamental package for scientific computing with Python\n- `Pandas \u003chttps://pandas.pydata.org/\u003e`_ : high-performance, easy-to-use data structures and data analysis tools\n- `Dask \u003chttps://dask.org/\u003e`_ : Advanced parallelism for analytics, enabling performance at scale\n- `CuPy \u003chttps://cupy.chainer.org/\u003e`_ : NumPy-compatible matrix library accelerated by CUDA\n- `PyCUDA \u003chttps://developer.nvidia.com/pycuda\u003e`_ : Nvidia's CUDA parallel computation API from Python\n- `CUDAMat \u003chttps://github.com/cudamat/cudamat\u003e`_ : Performs basic matrix calculations on CUDA-enabled GPUs from Python\n- `Numba \u003chttps://numba.pydata.org/\u003e`_ : Translates a subset of Python and NumPy code into fast machine code\n- `MinPy \u003chttps://github.com/dmlc/minpy\u003e`_ : NumPy interface above MXNet backend (deprecated)\n- `SQLite \u003chttps://sqlite.org/index.html\u003e`_ : C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. (for fun)\n\nInstall\n-------\n\n::\n\n  pip install fpb\n  \n  \nUsage\n-----\n\nThe command is pretty simple to use: ::\n\n  usage: fpb [-h] [-i ITERATIONS] [-v] [-j] [-s SIZE] [-S SIZE_Y] [-d DTYPE]\n             [-W WARMUP]\n             {sum.python,sum.ctypes,sum.numpy,sum.pandas,sum.dask,sum.cupy,sum.minpy,sum.numba,sum2d.python,sum2d.python_gen,sum2d.numpy,sum2d.pandas,sum2d.dask,sin.python,sin.numpy,sin.pandas,sin.dask,sin.cupy,sin.minpy,sin.numba,avg.python,avg.numpy,avg.pandas,avg.cupy,avg.minpy,avg.numba,max.python,max.numpy,max.pandas,max.dask,max.cupy,max.minpy,max.numba}\n\n  Measure Python computation performances\n\n  positional arguments:\n    {sum.python,sum.ctypes,sum.numpy,sum.pandas,sum.dask,sum.cupy,sum.minpy,sum.numba,sum2d.python,sum2d.python_gen,sum2d.numpy,sum2d.pandas,sum2d.dask,sin.python,sin.numpy,sin.pandas,sin.dask,sin.cupy,sin.minpy,sin.numba,avg.python,avg.numpy,avg.pandas,avg.cupy,avg.minpy,avg.numba,max.python,max.numpy,max.pandas,max.dask,max.cupy,max.minpy,max.numba}\n                          Module to test.\n\n  optional arguments:\n    -h, --help            show this help message and exit\n    -i ITERATIONS, --iterations ITERATIONS\n                          Number of iteration to run.\n    -v, --verbose         Verbosity level.\n    -j, --json            Display output as JSON instead of plain text.\n    -s SIZE, --size SIZE  Number of element in X axis.\n    -S SIZE_Y, --size_y SIZE_Y\n                          Number of element in Y axis, for 2D computation.\n    -d {float16,float32,float64,float128}, --dtype {float16,float32,float64,float128}\n                          Data type storing elements\n    -W WARMUP, --warmup WARMUP\n                          Number of iteration to run before start test.\n                          \nHere's an example of output: ::\n\n  $ fpb sin.numpy -i 3 -s 1000000 -d float16\n  values         : [14.111995697021484, 14.101982116699219, 14.655590057373047]\n  memory_errors  : 0\n  size           : 1000000\n  test           : fpb.sin.numpy\n  iterations     : 3\n  python_version : 3.6.8 (default, Aug 20 2019, 17:12:48) [GCC 8.3.0]\n  dtype          : float16\n  numpy_version  : 1.17.2\n  byte_size      : 2000096\n  average        : 14.28985595703125\n  stddev         : 0.258645371196851\n  percentile_99  : 14.644718170166016\n  percentile_95  : 14.60123062133789\n  percentile_90  : 14.546871185302734\n  percentile_75  : 14.383792877197266\n  median         : 14.111995697021484\n  min            : 14.101982116699219\n  max            : 14.655590057373047\n  speed          : 71.42422555255513\n  \n\n\nDesign consideration\n--------------------\n\n- All tests are supposed to be the most efficient way to do in the current framework.\n- Data are prepared before the the test and this operation isn't counted in result.\n- The task timing represents the time to compute and retrieve the result into Python interpreter, not lazy results.\n- Filled memory errors are considered as a normal behavior and counted in result as `memory_errors`.\n- When sharding is required to dispatch data, we split it with the number of threads available.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudmercato%2Fpython-fpb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudmercato%2Fpython-fpb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudmercato%2Fpython-fpb/lists"}