  We have developed a Python package ZMCintegral for multi-dimensional Monte
Carlo integration on multiple Graphics Processing Units(GPUs). The package
employs a stratified sampling and heuristic tree search algorithm. We have
built three versions of this package: one with Tensorflow and other two with
Numba, and both support general user defined functions with a user-friendly
interface. We have demonstrated that Tensorflow and Numba help inexperienced
scientific researchers to parallelize their programs on multiple GPUs with
little work. The precision and speed of our package is compared with that of
VEGAS for two typical integrands, a 6-dimensional oscillating function and a
9-dimensional Gaussian function. The results show that the speed of ZMCintegral
is comparable to that of the VEGAS with a given precision. For heavy
calculations, the algorithm can be scaled on distributed clusters of GPUs.
