Summary

In this chapter, we learned about IDEs and their significance. We learned about different IDEs and also went through PyCharm, PyDev for Eclipse, and Jupyter Lab. We also mentioned another IDE named Eric, along with highlighting some of its many features. We discussed PyCharm in detail and learned the differences between the various editions of PyCharm and also how to apply for a free license as an academician or a dedicated open source developer. Installation steps for PyCharm, PyDev, and Jupyter Lab were covered in detail.

Once we were done setting up our IDE, we were able to dive deeper into the GPU-enabled Python programming perspective, hands-on. We customized and explored various programs through CUDA, PyCUDA-C, OpenCL, PyOpenCL, Anaconda, and Numba, making it more convenient for us to understand why PyCUDA, PyOpenCL, and Anaconda Accelerate were developed. We looked at the differences between CUDA-C and PyCUDA; OpenCL-C and PyOpenCL; and finally Anaconda, CuPy, and Numba (formerly Accelerate). You can also optionally use PyDev or Jupyter Notebook, as we discussed in this chapter, or any other IDE of your preference. Jupyter Lab in particular would prove helpful, as it's a computational environment within an existing Anaconda configuration.

In the next chapter, we will focus on PyCUDA. We will start with basic CUDA-C examples to understand how we can use C programming skills to leverage NVIDIA GPUs. This will be helpful for our PyCUDA computing experience that will follow. We will learn about the different ways to install it in a simple manner before we start our hands-on programming walkthrough with PyCUDA on PyCharm.