Simulation APP does not support multi-threaded opening?

Isaac Sim Version

4.0.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: NVIDIA 4070
  • Driver Version: 535.129.03 CUDA 11.8

Topic Description

Detailed Description

I want to multi-threaded open the Simulation APP in a Python process, and import different scenarios and tasks for the robot to execute each simulation.

However, it seems that the Simulation APP does not support multi-threaded opening, and there seems to be no relevant information on multi-threaded opening of the Simulation APP in the documentation.

Does ISAACSIM not support multi-threaded opening of the Simulation APP?

Steps to Reproduce

My code is similar to:

for json_file in json_files:
thread = threading.Thread(target=my_function, args=(json_file, img_index[i], i))
i += 1
threads.append(thread)
thread.start()

And in my_function(json_file, img_index, i), it has the following code as:
from omni.isaac.kit import SimulationApp
config = {
“width”: “1280”,
“height”: “720”,
“headless”: False,
}
simulation_app = SimulationApp(config)

Error Messages

Starting kit application with the following args: [‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/exts/omni.isaac.kit/omni/isaac/kit/simulation_app.py’, ‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/apps/omni.isaac.sim.python.kit’, ‘–/app/tokens/exe-path=/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/kit’, ‘–/persistent/app/viewport/displayOptions=3094’, ‘–/rtx/materialDb/syncLoads=True’, ‘–/rtx/hydra/materialSyncLoads=True’, ‘–/omni.kit.plugin/syncUsdLoads=True’, ‘–/app/renderer/resolution/width=1280’, ‘–/app/renderer/resolution/height=720’, ‘–/app/window/width=1440’, ‘–/app/window/height=900’, ‘–/renderer/multiGpu/enabled=True’, ‘–/app/fastShutdown=True’, ‘–ext-folder’, ‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/exts’, ‘–ext-folder’, ‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/apps’, ‘–/physics/cudaDevice=0’, ‘–portable’]
Starting kit application with the following args: [‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/exts/omni.isaac.kit/omni/isaac/kit/simulation_app.py’, ‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/apps/omni.isaac.sim.python.kit’, ‘–/app/tokens/exe-path=/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/kit’, ‘–/persistent/app/viewport/displayOptions=3094’, ‘–/rtx/materialDb/syncLoads=True’, ‘–/rtx/hydra/materialSyncLoads=True’, ‘–/omni.kit.plugin/syncUsdLoads=True’, ‘–/app/renderer/resolution/width=1280’, ‘–/app/renderer/resolution/height=720’, ‘–/app/window/width=1440’, ‘–/app/window/height=900’, ‘–/renderer/multiGpu/enabled=True’, ‘–/app/fastShutdown=True’, ‘–ext-folder’, ‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/exts’, ‘–ext-folder’, ‘/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/apps’, ‘–/physics/cudaDevice=0’, ‘–portable’]
Passing the following args to the base kit application:
Passing the following args to the base kit application:
free(): invalid size
Fatal Python error: Aborted

Current thread 0x00007f9bcb6e3640 (most recent call first):

Thread 0x00007f9bcbee4640 (most recent call first):
File “/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/exts/omni.isaac.kit/omni/isaac/kit/simulation_app.py”, line 350 in _start_app
File “/data1/lfwj/isaac-sim/pkg/isaac-sim-4.0.0/exts/omni.isaac.kit/omni/isaac/kit/simulation_app.py”, line 197 in init
File “/data1/lfwj/sxs_vln/demo_vlm.py”, line 27 in main
Fatal Python error: File Segmentation fault"

/data1/lfwj/sxs_vln/demo_vlm.py", line 426 in run_main
File “/data1/lfwj/miniconda3/envs/isaacsim/lib/python3.10/threading.py”, line 953 in run
File “/data1/lfwj/miniconda3/envs/isaacsim/lib/python3.10/threading.py”, line 1016 in _bootstrap_inner
File “/data1/lfwj/miniconda3/envs/isaacsim/lib/python3.10/threading.py”, line 973 in _bootstrap

Thread 0x00007f9c25817740 (most recent call first):
File “/data1/lfwj/miniconda3/envs/isaacsim/lib/python3.10/threading.py”, line 1116 in _wait_for_tstate_lock
File “/data1/lfwj/miniconda3/envs/isaacsim/lib/python3.10/threading.py”, line 1096 in join
File “/data1/lfwj/sxs_vln/demo_vlm.py”, line 448 in

Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common
Extension modules: numpy.core._multiarray_umath, numpy.random.bit_generator, numpy.core._multiarray_tests, numpy.random._bounded_integers, numpy.random._mt19937, numpy.linalg._umath_linalg, numpy.random.mtrand, , numpy.random._philoxnumpy.fft._pocketfft_internal, , numpy.random._pcg64numpy.random._common, numpy.random._sfc64, numpy.random._generator, numpy.random.bit_generator, , numpy.random._bounded_integersPIL._imaging, , numpy.random._mt19937matplotlib._c_internal_utils, numpy.random.mtrand, , numpy.random._philoxmatplotlib._path, numpy.random._pcg64, kiwisolver._cext, numpy.random._sfc64, numpy.random._generator, matplotlib._image, PIL._imaging, scipy._lib._ccallback_c, matplotlib._c_internal_utils, scipy.ndimage._nd_image, scipy.special._ufuncs_cxx, matplotlib._path, scipy.special._ufuncs, kiwisolver._cext, scipy.special._specfun, scipy.special._comb, , matplotlib._imagescipy.linalg._fblas, scipy.linalg._flapack, scipy.linalg.cython_lapack, scipy._lib._ccallback_c, scipy.linalg._cythonized_array_utils, scipy.ndimage._nd_image, scipy.linalg._solve_toeplitz, scipy.special._ufuncs_cxx, scipy.linalg._decomp_lu_cython, scipy.special._ufuncs, scipy.linalg._matfuncs_sqrtm_triu, scipy.special._specfun, scipy.linalg.cython_blas, scipy.special._comb, scipy.linalg._matfuncs_expm, scipy.linalg._fblas, scipy.linalg._decomp_update, scipy.linalg._flapack, scipy.sparse._sparsetools, scipy.linalg.cython_lapack, _csparsetools, , scipy.linalg._cythonized_array_utilsscipy.sparse._csparsetools, scipy.linalg._solve_toeplitz, scipy.sparse.linalg._dsolve._superlu, scipy.linalg._decomp_lu_cython, scipy.sparse.linalg._eigen.arpack._arpack, scipy.linalg._matfuncs_sqrtm_triu, scipy.sparse.linalg._propack._spropack, scipy.linalg.cython_blas, scipy.sparse.linalg._propack._dpropack, scipy.linalg._matfuncs_expm, scipy.sparse.linalg._propack._cpropack, scipy.linalg._decomp_update, scipy.sparse.linalg._propack._zpropack, scipy.sparse._sparsetools, scipy.sparse.csgraph._tools, _csparsetools, scipy.sparse.csgraph._shortest_path, scipy.sparse._csparsetools, scipy.sparse.csgraph._traversal, scipy.sparse.linalg._dsolve._superlu, scipy.sparse.csgraph._min_spanning_tree, scipy.sparse.linalg._eigen.arpack._arpack, scipy.sparse.csgraph._flow, scipy.sparse.linalg._propack._spropack, scipy.sparse.csgraph._matching, , scipy.sparse.linalg._propack._dpropackscipy.sparse.csgraph._reordering, , scipy.sparse.linalg._propack._cpropackscipy.special._ellip_harm_2, scipy.sparse.linalg._propack._zpropack, _ni_label, scipy.sparse.csgraph._tools, scipy.ndimage._ni_label, scipy.sparse.csgraph._shortest_path, scipy.sparse.csgraph._traversal, scipy.sparse.csgraph._min_spanning_tree, charset_normalizer.md, scipy.sparse.csgraph._flow, scipy.sparse.csgraph._matching, scipy.sparse.csgraph._reordering, scipy.special._ellip_harm_2, _cffi_backend, _ni_label, (total: scipy.ndimage._ni_label55)
, charset_normalizer.md, _cffi_backend段错误 (核心已转储)

Additional Information

What I’ve Tried

I have tried running the SimulationAPP on multiple terminals and found that it is possible to open it simultaneously on multiple terminals, but it is not feasible in one Python process.

And I also tried to set the SimulationAPP to open on two different cards separately, that is, setting different graphics cards in config, but it seems to have no effect