📄 parallelcone.py
字号:
from vtk import *import sysimport osimport timemyProcId = 0numProcs = 1compManager = vtkCompositeManager()if compManager.GetController(): myProcId = compManager.GetController().GetLocalProcessId() numProcs = compManager.GetController().GetNumberOfProcesses()try: v = vtkMesaRenderer() if myProcId > 0: _graphics_fact=vtkGraphicsFactory() _graphics_fact.SetUseMesaClasses(1) del _graphics_fact del vexcept Exception, (bar): print "No mesa", bar #print "I am process: %d / %d" % (myProcId, numProcs)# create a rendering window and rendererren = vtkRenderer()renWin = vtkRenderWindow()renWin.AddRenderer(ren)renWin.SetSize(300,300)if myProcId: renWin.OffScreenRenderingOn()# create an actor and give it cone geometrycone = vtkConeSource()cone.SetResolution(8)coneMapper = vtkPolyDataMapper()coneMapper.SetInput(cone.GetOutput())coneActor = vtkActor()coneActor.SetMapper(coneMapper)# assign our actor to the rendererren.AddActor(coneActor)renWin.SetWindowName("I am node %d" % myProcId)if numProcs > 1: compManager.SetRenderWindow(renWin) compManager.InitializePieces()#print "Pid of process %d is %d" % (myProcId, os.getpid())def ExitMaster(a, b): #print "ExitMaster; I am %d / %d" % ( myProcId, numProcs ) if numProcs > 1 and myProcId == 0: #print "Trigger exit RMI on all satellite nodes" for a in range(1, numProcs): #print "Trigger exit in satellite node %d" % a compManager.GetController().TriggerRMI(a, 239954)if myProcId == 0: iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.AddObserver("ExitEvent", ExitMaster) iren.Start() #renWin.Render() #renWin.Render() #renWin.Render()else: compManager.InitializeRMIs() compManager.GetController().ProcessRMIs() compManager.GetController().Finalize() #print "**********************************" #print "Done on the slave node" #print "**********************************" sys.exit()ExitMaster(0, 0)#time.sleep(5)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -