Dalam program saya, saya perlu menjalankan N utas terpisah masing-masing dengan RNG mereka sendiri yang digunakan untuk sampel dataset besar. Saya harus dapat menyemai seluruh proses ini dengan nilai tunggal sehingga saya dapat mereproduksi hasil.
Apakah cukup untuk meningkatkan benih secara berurutan untuk setiap indeks?
Saat ini saya menggunakan numpy
's RandomState
yang menggunakan Mersenne Twister pseudo-random number generator.
Cuplikan kode di bawah ini:
# If a random number generator seed exists
if self.random_generator_seed:
# Create a new random number generator for this instance based on its
# own index
self.random_generator_seed += instance_index
self.random_number_generator = RandomState(self.random_generator_seed)
Pada dasarnya saya memulai dengan seed yang dimasukkan pengguna (jika ada) dan untuk setiap instance / utas saya secara berurutan menambahkan indeks (0 hingga N-1) dari instance yang berjalan. Saya tidak tahu apakah ini praktik yang baik atau apakah ada cara yang lebih baik untuk melakukan ini.