Generation of random numbers. This process
may become a problem if the random numbers are
generated within the GPU without an adequate
strategy for the initialization of the seeds. Any call
to the rand() function running on the GPU must
generate different numbers for each thread and in
any call. If the above condition is not provided, it
could result in a no converging algorithm because
of the poor diversity. In our parallel implementation
one seed per individual (i.e. one seed per thread) is
created and initialized by the host, and later each
thread itself generates random number and updates
its seed by mean (defined in pde_emb_kernel.cu, in
our case file) but updates the seed after each call.