mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-25 09:32:29 +00:00
e582ef07d4
Closes #28 for python 2. Apparently, process pools are not contexts in python 2.7. On the other hand, in py2 you cannot pickle instance methods, so you have to implement Pool tasks as independent functions.
24 lines
538 B
Python
24 lines
538 B
Python
from senpy.plugins import AnalysisPlugin
|
|
|
|
import multiprocessing
|
|
|
|
|
|
def _train(process_number):
|
|
return process_number
|
|
|
|
|
|
class AsyncPlugin(AnalysisPlugin):
|
|
def _do_async(self, num_processes):
|
|
pool = multiprocessing.Pool(processes=num_processes)
|
|
values = pool.map(_train, range(num_processes))
|
|
|
|
return values
|
|
|
|
def activate(self):
|
|
self.value = self._do_async(4)
|
|
|
|
def analyse_entry(self, entry, params):
|
|
values = self._do_async(2)
|
|
entry.async_values = values
|
|
yield entry
|