Evacuous_parallel
所属分类:GPU/显卡
开发工具:Python
文件大小:318KB
下载次数:0
上传日期:2019-10-25 18:41:51
上 传 者:
sh-1993
说明: 用于GPU编程的CUDA
(CUDA for GPU programming)
文件列表:
.idea (0, 2019-10-26)
.idea\modules.xml (268, 2019-10-26)
.idea\vcs.xml (180, 2019-10-26)
LICENSE.txt (1070, 2019-10-26)
graphics (0, 2019-10-26)
graphics\__init__.py (0, 2019-10-26)
graphics\draw_frame.py (2359, 2019-10-26)
graphics\resources.py (287, 2019-10-26)
main.py (4454, 2019-10-26)
movement.py (7961, 2019-10-26)
resources (0, 2019-10-26)
resources\car.png (47185, 2019-10-26)
resources\demo_map1.png (22511, 2019-10-26)
resources\imgres.png (4109, 2019-10-26)
stats (0, 2019-10-26)
stats\Evacuous.pstat (283263, 2019-10-26)
stats\Evacuous1.pstat (277277, 2019-10-26)
stats\Evacuous6.pstat (282978, 2019-10-26)
stats\Evacuous7.pstat (271558, 2019-10-26)
stats\Evacuous8.pstat (261627, 2019-10-26)
stats\index.txt (397, 2019-10-26)
task2.py (5631, 2019-10-26)
transfer.py (6418, 2019-10-26)
util (0, 2019-10-26)
util\__init__.py (0, 2019-10-26)
util\functions.py (1964, 2019-10-26)
util\load.py (814, 2019-10-26)
util\objects.py (3676, 2019-10-26)
# Evacuous
Note: This project is the parallelized version of [Project Evacuous](https://github.com/Salazar-Prime/Evacuous/)
## Authors
* [Varun Aggarwal](https://github.com/Salazar-Prime/)
* [Arvind Roshaan](https://github.com/ararosh)
* [P.R.Vaidyanathan](https://github.com/aditya95sriram)
## Dependencies
* [CUDA v7.5](https://developer.nvidia.com/cuda-75-downloads-archive)
* [PyCUDA v2016.1.2](https://wiki.tiker.net/PyCuda/Installation)
* [Pyglet v1.2.4](http://pyglet.readthedocs.io/en/pyglet-1.2-maintenance/programming_guide/installation.html)
## How to run
From the project root execute `python main.py [] [-g]` with the optional `-g` switch to run the simulation with graphics enabled and `` indicating the number of cars to run the simulation with (defaults to 1000 cars).
Example: `python main.py 1000 -g`
## Description
This is a simulation based project aimed at parallelizing the simulation(with graphics) of an evacuation situtation of smart cars. The main goal was to significantly reduce the run time of simulation using PyCUDA. This project was developed as a part of the course **ES611: Algorithms for Advanced Computer Architecture** conducted by Dr. Ravi Hegde at Indian Institute of Technology Gandhinagar.
## Scenario
There are a large number of smart cars in a city. Due to some emergency, all the cars are asked to evacuate the city as fast as possible.
To facilitate evacuation, some number of exit/evacuation points exist (generally on the outskirts), but the information about the
geographical location of an exit point is only available to the cars which are in the vicinity of one of the concerned exit point.
In other words, each exit has to be *discovered*. Each car has the ability to communicate with other cars in its vicinity.
There is not central coordinating body and each car has to make its own decisions based on the cars in its neighbourhood.
The *swarm* of cars has to work collectively to find exits and evacuate the city.
## Solution approach
The solution is inspired by the [Boids problem](http://www.red3d.com/cwr/boids/) by Craig Reynolds.
Each car of the swarm, has it's own thinking and decides which direction to proceed in, based on certain rules and
parameters - some of which depend on the behavior of the local swarm, and some depend on global goals.
These rules are aggregated to compute the new velocity of the car in question.
## Future Work
* Incorporate Collision Detection
* Allow directly importing map from Google Maps, and internally constructing the network
* CUDA kernels can be improved by making use of *Shared Memory*
* Make use of prepared function calls provided by PyCUDA while invoking the CUDA kernels
近期下载者:
相关文件:
收藏者: