@@ -33,17 +33,20 @@ def test_main(self, ipc_device, nmrs):
3333 device = ipc_device
3434 options = DeviceMemoryResourceOptions (max_size = POOL_SIZE , ipc_enabled = True )
3535 mrs = [DeviceMemoryResource (device , options = options ) for _ in range (nmrs )]
36- buffers = [mr .allocate (NBYTES ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
3736
38- with mp . Pool ( NWORKERS ) as pool :
39- pool . map ( self . process_buffer , buffers )
37+ try :
38+ buffers = [ mr . allocate ( NBYTES ) for mr , _ in zip ( cycle ( mrs ), range ( NTASKS ))]
4039
41- pgen = PatternGen (device , NBYTES )
42- for buffer in buffers :
43- pgen .verify_buffer (buffer , seed = True )
44- buffer .close ()
45- for mr in mrs :
46- mr .close ()
40+ with mp .Pool (NWORKERS ) as pool :
41+ pool .map (self .process_buffer , buffers )
42+
43+ pgen = PatternGen (device , NBYTES )
44+ for buffer in buffers :
45+ pgen .verify_buffer (buffer , seed = True )
46+ buffer .close ()
47+ finally :
48+ for mr in mrs :
49+ mr .close ()
4750
4851 def process_buffer (self , buffer ):
4952 device = Device (buffer .memory_resource .device_id )
@@ -72,20 +75,23 @@ def test_main(self, ipc_device, nmrs):
7275 device = ipc_device
7376 options = DeviceMemoryResourceOptions (max_size = POOL_SIZE , ipc_enabled = True )
7477 mrs = [DeviceMemoryResource (device , options = options ) for _ in range (nmrs )]
75- buffers = [mr .allocate (NBYTES ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
7678
77- with mp .Pool (NWORKERS , initializer = self .init_worker , initargs = (mrs ,)) as pool :
78- pool .starmap (
79- self .process_buffer ,
80- [(mrs .index (buffer .memory_resource ), buffer .get_ipc_descriptor ()) for buffer in buffers ],
81- )
79+ try :
80+ buffers = [mr .allocate (NBYTES ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
8281
83- pgen = PatternGen (device , NBYTES )
84- for buffer in buffers :
85- pgen .verify_buffer (buffer , seed = True )
86- buffer .close ()
87- for mr in mrs :
88- mr .close ()
82+ with mp .Pool (NWORKERS , initializer = self .init_worker , initargs = (mrs ,)) as pool :
83+ pool .starmap (
84+ self .process_buffer ,
85+ [(mrs .index (buffer .memory_resource ), buffer .get_ipc_descriptor ()) for buffer in buffers ],
86+ )
87+
88+ pgen = PatternGen (device , NBYTES )
89+ for buffer in buffers :
90+ pgen .verify_buffer (buffer , seed = True )
91+ buffer .close ()
92+ finally :
93+ for mr in mrs :
94+ mr .close ()
8995
9096 def process_buffer (self , mr_idx , buffer_desc ):
9197 mr = self .mrs [mr_idx ]
@@ -119,17 +125,20 @@ def test_main(self, ipc_device, nmrs):
119125 device = ipc_device
120126 options = DeviceMemoryResourceOptions (max_size = POOL_SIZE , ipc_enabled = True )
121127 mrs = [DeviceMemoryResource (device , options = options ) for _ in range (nmrs )]
122- buffers = [mr .allocate (NBYTES ) for mr , _ in zip (cycle (mrs ), range (NTASKS ))]
123128
124- with mp . Pool ( NWORKERS , initializer = self . init_worker , initargs = ( mrs ,)) as pool :
125- pool . starmap ( self . process_buffer , [( device , pickle . dumps ( buffer )) for buffer in buffers ])
129+ try :
130+ buffers = [ mr . allocate ( NBYTES ) for mr , _ in zip ( cycle ( mrs ), range ( NTASKS ))]
126131
127- pgen = PatternGen (device , NBYTES )
128- for buffer in buffers :
129- pgen .verify_buffer (buffer , seed = True )
130- buffer .close ()
131- for mr in mrs :
132- mr .close ()
132+ with mp .Pool (NWORKERS , initializer = self .init_worker , initargs = (mrs ,)) as pool :
133+ pool .starmap (self .process_buffer , [(device , pickle .dumps (buffer )) for buffer in buffers ])
134+
135+ pgen = PatternGen (device , NBYTES )
136+ for buffer in buffers :
137+ pgen .verify_buffer (buffer , seed = True )
138+ buffer .close ()
139+ finally :
140+ for mr in mrs :
141+ mr .close ()
133142
134143 def process_buffer (self , device , buffer_s ):
135144 device .set_current ()
0 commit comments