Skip to content

Commit 951d395

Browse files
committed
Mention depencency conflicts for InProcess
1 parent 1d4bb9e commit 951d395

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

doc/source/user_guide/tutorials/dpf_server/server_types.rst

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,16 @@ Understanding DPF server types
2424
There are three main server configurations available in PyDPF-Core:
2525

2626
- :class:`InProcessServer <ansys.dpf.core.server_types.InProcessServer>`: Direct communication
27-
within the same Python process (fastest, default since Ansys 2023 R1)
27+
within the same Python process (fastest, default since Ansys 2023 R1). Requires compatible
28+
runtime dependencies between Python packages and DPF plugins.
2829
- :class:`GrpcServer <ansys.dpf.core.server_types.GrpcServer>`: Network communication using
29-
gRPC protocol (enables remote and distributed computation)
30+
gRPC protocol (enables remote and distributed computation). Process isolation prevents
31+
dependency conflicts with DPF plugins.
3032
- :class:`LegacyGrpcServer <ansys.dpf.core.server_types.LegacyGrpcServer>`: Legacy gRPC
3133
communication for Ansys 2022 R1 and earlier versions
3234

33-
The choice of server type impacts performance, memory usage, and distributed computing capabilities.
35+
The choice of server type impacts performance, memory usage, dependency management, and
36+
distributed computing capabilities.
3437

3538

3639
Starting a local InProcess server
@@ -40,6 +43,16 @@ The default and most efficient way to use PyDPF-Core is with an :class:`InProces
4043
This configuration runs the DPF server directly within your Python process, eliminating data
4144
transfer overhead and providing the fastest performance.
4245

46+
.. note::
47+
48+
While :class:`InProcessServer <ansys.dpf.core.server_types.InProcessServer>` offers the best
49+
performance, it requires that all runtime dependencies are compatible between your Python
50+
environment and DPF plugins. If any Python dependency clashes with a DPF plugin dependency,
51+
that plugin is not be loaded, resulting in lost capabilities.
52+
53+
:class:`GrpcServer <ansys.dpf.core.server_types.GrpcServer>` does not have this limitation
54+
because process isolation ensures dependency isolation between the client and server.
55+
4356
First, import the necessary modules:
4457

4558
.. jupyter-execute::
@@ -293,9 +306,15 @@ The choice of DPF server configuration depends on your specific requirements:
293306
- Use :class:`InProcessServer <ansys.dpf.core.server_types.InProcessServer>` for local computations
294307
requiring maximum performance and minimal memory overhead (default since Ansys 2023 R1)
295308

309+
- Provides the fastest performance by eliminating data transfer between client and server
310+
- **Limitation**: Requires compatible runtime dependencies between Python packages and DPF plugins.
311+
Incompatibilities between dependencies can prevent plugins from loading
312+
- Best suited for environments with controlled dependencies and standard DPF plugins
313+
296314
- Use :class:`GrpcServer <ansys.dpf.core.server_types.GrpcServer>` when you need distributed
297315
computation, remote access, or when running DPF on a different machine (available since Ansys 2022 R2)
298316

317+
- Process isolation ensures dependency isolation, avoiding clashes between Python environment and plugins
299318
- Starting with DPF 2026 R1, gRPC connections use mTLS authentication by default for enhanced security
300319
- Configure ``ANSYS_GRPC_CERTIFICATES`` environment variable on both client and server for mTLS
301320
- For more information, see :ref:`ref_dpf_server_secure_mode`

0 commit comments

Comments
 (0)