Skip to content

Commit 3916eaf

Browse files
committed
Update 1_requirements.rst
1 parent 3c89cc0 commit 3916eaf

1 file changed

Lines changed: 178 additions & 44 deletions

File tree

source/1_requirements.rst

Lines changed: 178 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,69 +3,203 @@
33
Requirements and Quickstart
44
===========================
55

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.
8112

9-
The minimiums are listed as follows:
10113

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+
----------
13116

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.
15120

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+
~~~~~~~
20123

124+
Install the required toolchain and cache the GUI dependencies:
21125

22-
Basic Environment
23-
-----------------
126+
.. code-block:: powershell
24127
25-
This page summarizes the system requirements and dependencies of ``Streamcenter+``.
128+
.\install.cmd
26129
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:
28131

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
32133
33-
.. code-block::
134+
.\install.ps1
34135
35-
python -m ensurepip --upgrade
136+
If Debug variants of ``Qt`` and ``VTK`` are needed as well, use:
36137

37-
Generally, the following dependencies can be installed via ``pip``, the Python package manager.
138+
.. code-block:: powershell
38139
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
49141
50-
You can install them after installing ``pip`` by:
142+
Build both the native CUDA solver and the native GUI:
51143

52-
.. code-block::
144+
.. code-block:: powershell
53145
54-
pip install -r ./requirements.txt
146+
.\build.ps1 -NonInteractive
55147
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:
57149

150+
.. code-block:: powershell
58151
59-
Add-on Libs (Optional)
60-
----------------------
152+
.\GUI\V2603\run.ps1
61153
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:
65155

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.
68201

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

Comments
 (0)