Direction Field Visualization with Python
Oluwatosin
Unknown
- 0 Collaborators
This project demonstrates the visualization of a direction field with Python using the differential equation of a falling object as a case study. The effectiveness of Heterogeneous Computing is also shown by exploring optimized libraries & added functionalities in Intel® Distribution for Python*. ...learn more
Project status: Published/In Market
Groups
oneAPI Showcase
Intel Technologies
DevCloud,
oneAPI,
Intel Integrated Graphics,
Intel Python,
Intel CPU
Overview / Usage
The scope of this project is mathematics, numerical / scientific computing and high performance computing and the case study differential equation is the differential equation of a falling object.
OBJECTIVES:
The overall objective of this project is to demonstrate the visualization of a direction field with Python. Specifically, the project aims to address the following objectives:
O1. To use the differential equation of a falling object as a case study.
O2. To use an open source application software in developing programs for the direction field plot.
O3. To explore the numerical package of the python software (numpy) in developing programs for the direction field plot.
O4. To extend the functionality of the programs developed in O3. with packages provided in the Intel’s Distribution for Python* (IDP*) in order to demonstrate heterogeneous computing.
O5. To explore the possibilities of increasing performance of the python programs developed in 03. with the data parallel package offered by Intel.
THE USEFULNESS OF THE PROJECT:
The project shows the following -
- The use of open source software (Python) in developing the programs for the direction field plot.
- The use of the matplotlib.pyplot.quiver() and straight line equation methods to develop the programs used in obtaining the direction field.
- The effectiveness of the numerical package (numpy) offered by python, in the programs developed.
- The effectiveness of heterogeneous computing by exploring the added functionalities offered by Intel® Distribution for Python (IDP*).
Performance results obtained show that the best performing program is based on the matplotlib.pyplot.quiver() method, and has the additional functionality of data parallel control (dpctl) package offered by IDP*, enabling it to run on the Integrated Graphics, Intel® UHD Graphics P630 [0x3e96] of the Intel® E-2176G processor (in other words, the GPU version of the matplotlib.pyplot.quiver() program).
Methodology / Approach
APPROACH :
In this project, the implementation of a direction field plot with python is based on two methods:
• The matplotlib.pyplot.quiver() (MPQ) method
• The straight line equation (SLE) method.
I consider these two methods for the purpose of comparison of performance based on the time of execution as well as for the purpose of exploring the following packages in the Intel® Distribution of Python* (IDP*) :
- Numpy - an optimized Python numerical package.
- The numba.prange expression provided by Numba* - an open-source, NumPy-aware optimizing compiler for Python developed by Anaconda, Inc in collaboration with an open-source community.
- SYCL-based XPU programming provided by Data Parallel Python (DPPY).The following packages in DPPY are explored :
• Data Parallel Control (dpctl) - A package for controlling execution on SYCL devices and for SYCL USM data management.
• Numba_dppy - A standalone extension to Numba adding SYCL kernel programming to Numba*.
Technologies Used
Technologies Used :
Development Environment: Intel devcloud - for developing, testing and running the project.
**Intel Hardware: **Intel® Xeon® E-2176G.
oneAPI Toolkit(s): oneAPI AI Analytics Toolkit.
Programming Support: Intel® Distribution for Python*.
Documents and Presentations
Repository
https://github.com/olutosinbanjo/direction_field