I use OpenGL ROP a lot, and I usually have more of them in the scene. They can often render simultaneously without significant decrease of the speed. So I did a script, which creates .py file (with a simple render script) for each selected ROP and also creates Windows .bat file, which launches hython for each created .py to run them simultaneously.
I will investigate the possibility to assign different GPUs to each hython (HOUDINI_OCL_DEVICENUMBER variable is not taken into account here).
# create .py script for each selected ROP, to render it # create .bat file, which launches hython for each created .py to run them simultaneously def batch_script_rop () : import os path_hip = hou.expandString('$HIP') path_hipfile = hou.expandString('$HIPFILE') path_hython = hou.expandString('$HB') + '/hython.exe' path_scripts = path_hip + '/scripts/' if not os.path.exists(path_scripts): os.makedirs(path_scripts) script_bat = 'REM This batch file runs multiple .py scripts at once \n' for rop in hou.selectedNodes() : # .py script script_rop = '# This .py script opens a file and renders single rop\n' script_rop += 'hou.hipFile.load("' + path_hipfile + '")\n' script_rop += 'node = hou.node("' + rop.path() + '")\n' script_rop += 'node.render(verbose=True,output_progress=True)' # write .py to disk path_py = path_scripts + rop.name() + '.py' file_py = open( path_py, "w") file_py.write(script_rop) # .bat script script_bat += 'start "Render: ' + rop.name() + '" "' script_bat += path_hython + '" "' script_bat += path_py + '"\n' # write .bat to disk path_bat = path_hip + '/_render.bat' file_rop = open( path_bat, "w") file_rop.write(script_bat)