|
3 | 3 | Requirements and Quickstart |
4 | 4 | =========================== |
5 | 5 |
|
6 | | -Hardware and Hardware Requirements |
7 | | ----------------------------------- |
| 6 | +Hardware and Platform |
| 7 | +--------------------- |
| 8 | + |
| 9 | +This page summarizes the supported mainline workflow of ``Streamcenter+``. |
| 10 | +The current mainline is no longer the old Python package set. It is centered on a |
| 11 | +native CUDA FTLE solver together with a native Qt/VTK desktop GUI. |
| 12 | +The archived Python implementation is still preserved under ``legacy/`` in the code |
| 13 | +repository for reference and migration, but it is no longer the primary workflow |
| 14 | +described in this documentation. |
| 15 | + |
| 16 | +The minimum practical requirements are listed as follows: |
| 17 | + |
| 18 | +* At least 4 GB of system memory and about 10 GB of free disk space. |
| 19 | +* A 64-bit Windows or Linux environment. The shipped install scripts currently target |
| 20 | + Windows and Debian/Ubuntu-style Linux systems with ``apt``. |
| 21 | +* An NVIDIA GPU together with a locally installed CUDA Toolkit for the mainline solver. |
| 22 | + |
| 23 | +The solver configures ``CMAKE_CUDA_ARCHITECTURES=native`` by default, so the build |
| 24 | +machine is expected to have a visible local NVIDIA CUDA environment. |
| 25 | + |
| 26 | +GPU memory capacity is usually the main bottleneck for large FTLE jobs. |
| 27 | +A practical rule of thumb is to keep |
| 28 | +:math:`N_x \times N_y \times N_z \times N_t` |
| 29 | +below roughly 200,000,000 Lagrangian particles per GiB of VRAM for the default |
| 30 | +double-sided still workflow, and lower than that for higher-order settings. |
| 31 | + |
| 32 | + |
| 33 | +Mainline Environment |
| 34 | +-------------------- |
| 35 | + |
| 36 | +The native solver and the native GUI do not require Python or ``pip`` for their |
| 37 | +standard build-and-run path. |
| 38 | +Instead, the repository provides platform-specific installation scripts that prepare |
| 39 | +the CMake/CUDA/Qt/VTK toolchain directly. |
| 40 | + |
| 41 | +On Windows, ``install.cmd`` and ``install.ps1`` provision the following mainline |
| 42 | +dependencies: |
| 43 | + |
| 44 | +* ``Git`` |
| 45 | +* ``CMake`` |
| 46 | +* ``Ninja`` |
| 47 | +* ``Visual Studio Build Tools 2022`` |
| 48 | +* ``NVIDIA CUDA Toolkit`` |
| 49 | +* ``FFmpeg`` for MP4 export |
| 50 | +* a local ``vcpkg`` tree that installs ``Qt6`` and ``VTK`` |
| 51 | + |
| 52 | +The default Windows dependency cache uses the ``x64-windows-release`` triplet, which |
| 53 | +avoids building both Debug and Release variants of ``Qt`` and ``VTK`` during the first |
| 54 | +install. |
| 55 | +If Debug libraries are also needed, rerun the installer with |
| 56 | +``-VcpkgTriplet x64-windows``. |
| 57 | + |
| 58 | +On Debian/Ubuntu-style Linux systems, ``install.sh`` installs the following packages: |
| 59 | + |
| 60 | +* ``build-essential`` |
| 61 | +* ``cmake`` |
| 62 | +* ``ninja-build`` |
| 63 | +* ``git`` |
| 64 | +* ``pkg-config`` |
| 65 | +* ``qt6-base-dev`` |
| 66 | +* ``qt6-base-dev-tools`` |
| 67 | +* ``qt6-tools-dev`` |
| 68 | +* ``libvtk9-dev`` |
| 69 | +* ``libvtk9-qt-dev`` |
| 70 | +* ``ffmpeg`` by default |
| 71 | +* ``nvidia-cuda-toolkit`` by default |
| 72 | + |
| 73 | +When ``nvcc`` is found on Linux, the installer also records |
| 74 | +``STREAMCENTERPLUS_CUDA_ROOT`` under |
| 75 | +``~/.config/streamcenterplus/env.sh`` for later builds. |
| 76 | + |
| 77 | + |
| 78 | +Environment Overrides |
| 79 | +--------------------- |
| 80 | + |
| 81 | +If your toolchain is installed outside the default locations, the build scripts |
| 82 | +understand the following environment variables: |
| 83 | + |
| 84 | +* ``STREAMCENTERPLUS_VCPKG_ROOT`` |
| 85 | +* ``STREAMCENTERPLUS_VCPKG_TRIPLET`` |
| 86 | +* ``STREAMCENTERPLUS_QT_ROOT`` |
| 87 | +* ``STREAMCENTERPLUS_VTK_ROOT`` |
| 88 | +* ``STREAMCENTERPLUS_CUDA_ROOT`` |
| 89 | + |
| 90 | +For migration convenience, the renamed build scripts still accept the legacy |
| 91 | +``PY3DFTLE_*`` environment variables as fallback inputs. |
| 92 | + |
| 93 | + |
| 94 | +Add-on Tools |
| 95 | +------------ |
| 96 | + |
| 97 | +* **ParaView** |
| 98 | + ParaView remains a convenient external viewer for inspecting ``.vts`` and ``.pvd`` |
| 99 | + outputs generated by the native solver. |
| 100 | + It is optional, because the native GUI already provides an embedded VTK viewer, but |
| 101 | + it is still useful for post-processing and larger inspection tasks. |
| 102 | + |
| 103 | +* **FFmpeg** |
| 104 | + ``ffmpeg`` is required if you want to export MP4 animations from the GUI. |
| 105 | + It is optional for plain solving, parameter editing, and static visualization. |
| 106 | + |
| 107 | +* **PowerShell on Linux** |
| 108 | + ``pwsh`` is optional on Linux. |
| 109 | + It is only needed if you want to use the same ``run.ps1`` wrappers shipped for the |
| 110 | + Windows workflow. Otherwise the built GUI or solver binaries can be launched directly |
| 111 | + from their build folders. |
8 | 112 |
|
9 | | -The minimiums are listed as follows: |
10 | 113 |
|
11 | | -* Minimium 4GB RAM and 10GB free disk. |
12 | | -* Not sensitive to platform. Windows 11 and Ubuntu 22.04 are fully tested. |
| 114 | +Quickstart |
| 115 | +---------- |
13 | 116 |
|
14 | | -GPU acceleration is suggested for large dataset computation. Therefore, the requirements for GPU acceleration is listed as follows: |
| 117 | +The steps below follow the current native mainline repository layout. |
| 118 | +They use the top-level install and build entry points and then launch the GUI or solver |
| 119 | +through the maintained wrapper scripts. |
15 | 120 |
|
16 | | -* NVIDIA GPUs, with a minimum `compute capability <https://developer.nvidia.com/cuda-gpus>`__ of 5.0, i.e., later than GTX 750. |
17 | | -* It is suggested that, make ``Nx`` × ``Ny`` × ``Nz`` × ``Nt`` less than 200,000,000 Lagrangian particles on each Gigabyte of GPU memory for double-side computation under default numerical methods for one still. Generally half it under high-order computations. For example, you can execute on a 600×300×300 mesh for c.a. 80 time steps for a still on a welcomed RTX 2080ti 22G customized GPU, with the price of ~$400. |
18 | | -* The general short for GPU is VRAM, not computational power, hence old-but-large GPUs are great for use. Newers can be faster, but smallers can run nothing. |
19 | | -* The GPU requirements for dynamic LCS are undergoing experiments by the author. |
| 121 | +Windows |
| 122 | +~~~~~~~ |
20 | 123 |
|
| 124 | +Install the required toolchain and cache the GUI dependencies: |
21 | 125 |
|
22 | | -Basic Environment |
23 | | ------------------ |
| 126 | +.. code-block:: powershell |
24 | 127 |
|
25 | | -This page summarizes the system requirements and dependencies of ``Streamcenter+``. |
| 128 | + .\install.cmd |
26 | 129 |
|
27 | | -Firstly, the following packages are supposed to be installed on your computer manually in advance. |
| 130 | +If you need advanced flags, call the PowerShell entry directly instead: |
28 | 131 |
|
29 | | -1. `Python <https://www.python.org/>`__ version 3.13. Later version than 3.8 till 3.13 should work properly, but was not fully tested. The official download could be found at `here <https://www.python.org/downloads/release/python-3130/?featured_on=pythonbytes>`__. Please select Python installer according to your system framework. |
30 | | -2. `CUDA Toolkit <https://developer.nvidia.com/cuda-toolkit>`__ version 12.9 (`Download <https://developer.nvidia.com/cuda-toolkit-archive>`__). All versions crossing 12.x.x should theoretically work, but only 12.9 was fully tested. Ealier versions could work as well, but it requires a different version of `cupy`, and could cause unexpected performance decay and errors. See `cupy` documentation for more information. |
31 | | -3. `pip <https://pypi.org/project/pip/>`__ newest version, which is used for installing further dependencies. It can be installed by: |
| 132 | +.. code-block:: powershell |
32 | 133 |
|
33 | | -.. code-block:: |
| 134 | + .\install.ps1 |
34 | 135 |
|
35 | | - python -m ensurepip --upgrade |
| 136 | +If Debug variants of ``Qt`` and ``VTK`` are needed as well, use: |
36 | 137 |
|
37 | | -Generally, the following dependencies can be installed via ``pip``, the Python package manager. |
| 138 | +.. code-block:: powershell |
38 | 139 |
|
39 | | -1. `numpy <https://numpy.org>`__ version 1.21 or later |
40 | | -2. `matplotlib <https://matplotlib.org>`__ version 3.4 or later |
41 | | -3. `pyvista <https://pyvista.org>`__ version 0.32 or later |
42 | | -4. `scipy <https://scipy.org>`__ version 1.7 or later |
43 | | -5. `pyevtk <https://github.com/paulo-herrera/PyEVTK>`__ version 1.4 or later |
44 | | -6. `numba <https://numba.pydata.org>`__ version 0.54 or later |
45 | | -7. `tqdm <https://tqdm.github.io>`__ version 4.62 or later |
46 | | -8. `cupy-cuda12x <https://pypi.org/project/cupy-cuda12x/>`__ version 13.4.1 or later |
47 | | -9. `pyvistaqt <https://github.com/pyvista/pyvistaqt>`__ version 0.11.2 or later |
48 | | -10. `PyQt5 <https://riverbankcomputing.com/software/pyqt/intro>`__ version 5.15.11 or later |
| 140 | + .\install.ps1 -VcpkgTriplet x64-windows |
49 | 141 |
|
50 | | -You can install them after installing ``pip`` by: |
| 142 | +Build both the native CUDA solver and the native GUI: |
51 | 143 |
|
52 | | -.. code-block:: |
| 144 | +.. code-block:: powershell |
53 | 145 |
|
54 | | - pip install -r ./requirements.txt |
| 146 | + .\build.ps1 -NonInteractive |
55 | 147 |
|
56 | | -When it does not work, consider if your current dir is incorrect. It should be run from the project root of ``Streamcenter+`` when undergoing configurations and under :ref:`command-line <command>` mode. Please feel free about such thing under GUI mode. |
| 148 | +Run the GUI: |
57 | 149 |
|
| 150 | +.. code-block:: powershell |
58 | 151 |
|
59 | | -Add-on Libs (Optional) |
60 | | ----------------------- |
| 152 | + .\GUI\V2603\run.ps1 |
61 | 153 |
|
62 | | -**1. ParaView** is a powerful beloved open-source visualization platform based on *vtk* that can be used to visualize the results of 3D FTLE computations. We also integrated the ParaView entrance into our GUI, so you can directly open ParaView from it. |
63 | | -The ParaView installation-free package (v6.0) can be downloaded from `official <https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v6.0&type=binary&os=Windows&downloadFile=ParaView-6.0.0-RC1-MPI-Windows-Python3.12-msvc2017-AMD64.zip>`__. |
64 | | -For already-installed ParaView, set environment variable ``PARAVIEW_PATH`` pointing to the root dir of ParaView to enable integration from GUI of ``Streamcenter+``. |
| 154 | +Optionally run the bundled solver smoke test directly: |
65 | 155 |
|
66 | | -Quickstart |
67 | | ------------------ |
| 156 | +.. code-block:: powershell |
| 157 | +
|
| 158 | + .\CUDAsolvers\V2603\run.ps1 --par .\CUDAsolvers\V2603\tools\regression_small.par |
| 159 | +
|
| 160 | +
|
| 161 | +Linux (Debian/Ubuntu) |
| 162 | +~~~~~~~~~~~~~~~~~~~~~ |
| 163 | + |
| 164 | +Install the build dependencies: |
| 165 | + |
| 166 | +.. code-block:: bash |
| 167 | +
|
| 168 | + bash ./install.sh |
| 169 | +
|
| 170 | +Build both the solver and the GUI: |
| 171 | + |
| 172 | +.. code-block:: bash |
| 173 | +
|
| 174 | + bash ./build.sh --all |
| 175 | +
|
| 176 | +Run the GUI. |
| 177 | +If PowerShell is available, the wrapper is: |
| 178 | + |
| 179 | +.. code-block:: bash |
| 180 | +
|
| 181 | + pwsh ./GUI/V2603/run.ps1 |
| 182 | +
|
| 183 | +Otherwise, launch the generated GUI binary directly from ``GUI/V2603/build/``. |
| 184 | + |
| 185 | +Optionally run the bundled solver smoke test. |
| 186 | +With PowerShell: |
| 187 | + |
| 188 | +.. code-block:: bash |
| 189 | +
|
| 190 | + pwsh ./CUDAsolvers/V2603/run.ps1 --par ./CUDAsolvers/V2603/tools/regression_small.par |
| 191 | +
|
| 192 | +Without PowerShell, launch the built solver binary directly from |
| 193 | +``CUDAsolvers/V2603/out/build/``. |
| 194 | + |
| 195 | + |
| 196 | +Notes for Real Cases |
| 197 | +-------------------- |
| 198 | + |
| 199 | +The mainline GUI always launches the native CUDA solver. There is no longer a |
| 200 | +Python/native backend selector in the supported workflow. |
68 | 201 |
|
69 | | -After configurations of environment, you can run a very first demo to test the environment as well as the code, and learn how to use this toolbox for your own data towards new insights. |
70 | | -An computation example coming with a set of our in-house downscaled Direct Navier-Stokes Simulation (DNS) data is provided, including :math: |
71 | | -The dataset can be downloaded from `here <https://noting.noting>`__, and the case descriptions can be referred to paper ``I.P.``. |
| 202 | +The parameter format remains ``.par``-based. |
| 203 | +When preparing your own cases, update entries such as ``vtk_folder`` and |
| 204 | +``output_dir`` so that they point to locations that actually exist on your machine. |
| 205 | +The native parser reads those paths literally. |
0 commit comments