GNU Octave

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • Rust-CUDA

    Ecosystem of libraries and tools for writing and executing fast GPU code fully in Rust.

  • Given your criteria, you might want to consider (modern) C++.

    * Fast - in many cases faster than Rust, although the difference is inconsequential relative to Python-to-Rust improvement I guess.

    * _Really_ utilize CUDA, OpenCL, Vulcan etc. Specifically, Rust GPU is limited in its supported features, see: https://github.com/Rust-GPU/Rust-CUDA/blob/master/guide/src/... ...

    * Host-side use of CUDA is at least as nice, and probably nicer, than what you'll get with Rust. That is, provided you use my own Modern C++ wrappers for the CUDA APIs: https://github.com/eyalroz/cuda-api-wrappers/ :-) ... sorry for the shameless self-plug.

    * ... which brings me to another point: Richer offering of libraries for various needs than Rust, for you to possibly utilize.

    * Easier to share than Rust. A target system is less likely to have an appropriate version of Rust and the surrounding ecosystem.

    There are downsides, of course, but I was just applying your criteria.

  • cuda-api-wrappers

    Thin C++-flavored header-only wrappers for core CUDA APIs: Runtime, Driver, NVRTC, NVTX.

  • Given your criteria, you might want to consider (modern) C++.

    * Fast - in many cases faster than Rust, although the difference is inconsequential relative to Python-to-Rust improvement I guess.

    * _Really_ utilize CUDA, OpenCL, Vulcan etc. Specifically, Rust GPU is limited in its supported features, see: https://github.com/Rust-GPU/Rust-CUDA/blob/master/guide/src/... ...

    * Host-side use of CUDA is at least as nice, and probably nicer, than what you'll get with Rust. That is, provided you use my own Modern C++ wrappers for the CUDA APIs: https://github.com/eyalroz/cuda-api-wrappers/ :-) ... sorry for the shameless self-plug.

    * ... which brings me to another point: Richer offering of libraries for various needs than Rust, for you to possibly utilize.

    * Easier to share than Rust. A target system is less likely to have an appropriate version of Rust and the surrounding ecosystem.

    There are downsides, of course, but I was just applying your criteria.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • conan

    Conan - The open-source C and C++ package manager

  • > when I've heard CUDA lets you maintain the same data structure

    Yes, that's possible with a combination of:

    * Unified address space for pointers (and C++ references are basically pointers)

    * Paged virtual memory on GPUs

    ... however, remember that many/most data structures which make sense on the CPU may not make sense to use on a GPU. And - NVIDIA very often implements and promotes certain features because they sound good in marketing, not because they're actually that useful. Or because they let you make a super-slow program into a meh-speed program, not because you would use them in a really-fast program.

    > Compiling from source on rust is generally install Rustc, and do `cargo b --release`. Compiling someone else's code in C++ is... complicated.

    Well, I guess you may have a point, but let me still make a couple more arguments.

    First, installing Rust (and related libraries/tools/whatever) is not trivial for people who don't know rust, and some OS distributions only offer you an older version of rust using their distro-package-managers. It's more likely that a C++ environment is already set up on someone's machine... TBH, though, if the distro is older, that might not be a perfect fit for what you're building.

    Second C++ package managers becoming more popular, e.g. Conan: https://conan.io/ ; and that helps for when your OS distro doesn't cover you.

    As for compiling somebody else's code - this has improved a whole lot over the past... say, decade or so:

    * Unzip/untar

    * Configure the build with CMake (cross-platform build system generator - almost ubiquitous these days in C++ projects): `cmake -B build_dir/` or use a TUI (ccmake) or GUI (cmake-gui) for setting options.

    * Assuming you have the dependencies set up - it should "just build": `cmake --build build_dir`

    * Run the thing from the build directory or install it with `cmake --install build_dir`.

    The problems start when you're missing dependencies, or if the author didn't make their code platform-independent / multi-platform.

  • evcxr

  • There's an interesting experimental project for a Rust REPL and notebook interface at https://github.com/google/evcxr . Other things, e.g. semi-officially endorsed collections of community crates with no strong backward compatibility guarantees, have seen some development already.

    > but then they're going to hit the large legacy of existing code and wonder why you taught them something that not related to what they're going to use.

    OTOH other languages should be easier to learn by reference to a comparatively elegant language like Rust. Python, Fortran, C++ etc. have almost nothing in common but Rust could arguably be a good introductory baseline that shares features with all of these.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • CuGraph – GPU-accelerated graph analytics

    1 project | news.ycombinator.com | 16 Oct 2023
  • VUDA: A Vulkan Implementation of CUDA

    3 projects | news.ycombinator.com | 1 Jul 2023
  • using GPU's with rancher

    1 project | /r/rancher | 20 Jun 2023
  • GPU implementation of shortest path?

    1 project | /r/learnpython | 8 Apr 2023
  • Is it possible to run Sklearn models on a GPU?

    1 project | /r/datascience | 5 Mar 2023