How and where are GPUs used in scientific simulations? [closed] - gpgpu

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
How and where are GPUs used in scientific simulations (esp. in astrophysics/cosmology)?

Take a look at NVIDIA CUDA showcase. First two applications mentioned are astronomy/astrophysics.
Astrophysics tag on GPGPU.org

It's quite a new field, but I've seen an application in astrophysics once.
Generally GPUs can be used for parallelizable calculations (per pixel or per event), with simple C-compatible (not object oriented) routines, e.g. fourier trafo, histograms, etc

The simulation in Physics usually needs to consider thousands/millions of particles in cosmology and astrophysics, in Electromagnetic (e.g. in the light propagation g-search "+fdtd +gpu") and fluid simulations, in biological contexts, atmosphere, etc. The GPU can harness the parallelism that is present in the universe. The hardware and the software are ready (g-search Open-CL, CUDA). You can have a supercomputer in your desk. In almost all simulations we can use parallel reasoning: define how to model the response of one component and apply to all components propagating the interactions in time steps.
see my PSE-answer here to see a nice picture where my GPU(300 processors) was used to simulate gravitacional interactions using direct N-Body code.

Related

Language and Platform [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am really new to Windows platform.
I was wondering if you guys can give me a tip on which language to start on and which platform is the best and easy to learn and use for the following
I will be working on Video dissecting, frame rate measurement. Everything to do with video frames and image processing measurement.
Performance is a very big concern. So I will not be able to work on Java or any other language. I would performance like C/C++.
Please give me reference as to where I can start off on it too.
Is OpenCV a good choice?
Thank you.
OpenCV is definitely a good place to start. The library is written in C++, have good API, and is highly optimized. OpenCV's cv::Mat data structure is fast and easy to work with and allows you to do linear algebra on matrices. The library has a large user community, so you should be able to find help on-line easily. You may use other libraries in conjunction with OpenCV or implement your own custom functions.
I would also suggest to use the power of GPU for image processing (when it is appropriate). OpenCV has a few functions that are implemented on GPU. This number will probably increase, because the library is being continuously updated (an updated version is released approximately every 3 to 4 months).
Yes OpenCV is very good choice to start. Its very easy to learn since it is widely used and lot of help is available online. You can get things done with minimum code.

rendering algorithm suggestions [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
For a project in computer science I am to implement a further improvement to my ray-tracing renderer.
Features at the moment:
SIMD implementation of ray-triangle intersection
BVH using AABB. (SIMD ray-box intersection)
Light calculations: Diffuse, Specular (reflection, refraction), Glossy Highlights
HDR image based lighting
Tone mapping
I'm looking for suggestions onto what algorithm that I might try to implement to win the rendering contest ;).
Requirements:
Tough (challenging) and interesting, but yet doable for a 3 year bachelor student.
Physically correct implementation.
Good description research papers, implementation tutorials, or theory explained. (E.G. Slides)
Should be able to be done in about 2 weeks time.
Maybe something that would make me able to do physically based rendering of a character, hair, clothes and so on.

Prerequisites for understanding algorithms? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What areas of math are prerequisite for learning algorithms?
I guess it depends a lot about the kind of algorithm you want to use and how deeply you want to understand them.
The understand of the usual basic data structures needs almost no math background.
Most of the graphical algorithms requires knowledge of trigonometry and spatial geometry.
Algorithms about physics engine are easier to understand if you have some physics basis
If you want your program to help you to take decisions, you might need to study operational research which is a really huge sub-fields of math which includes graph theory, game theory, optimisation (which then includes analysis and linera albegra)
In any case, having a logic/mathematical mind obviously helps a lot for the understanding and to check/prove that your code can/cannot work.
If you're talking about simple programming you don't really need a lot of math. At this level, your problem solving and logic abilities are more important, but it's necessary that you get instructed in the basics of problem solving by using flow charts and process planing.
In the other side, math is known to improve your abilities and in some areas you would need to know math to achieve the expected results. For example, to create an animation engine knowing linear algebra is more than useful, so its physics.

Application based(which is used) OpenMPI [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Please help me to find some working application which is using openmpi. I need any name of application which have widely/worldwide usage and based on openmpi (using it). At least the name of that kind application will be enough.
Thanks
OpenMPI is an implementation of MPI. Applications are written using MPI (i.e. the code calls MPI routines), and they can be compiled/run using any MPI implementation (e.g. MPICH2, OpenMPI, LAM-MPI, etc).
So, to answer your question, strictly speaking there is no such thing as an "OpenMPI application".
As for what applications use MPI, there are many. Here's a few:
AMBER (Molecular Dynamics)
Gromacs (Molecular Dynamics)
DL-POLY (molecular dynamics)
FFTW (for parallel Fourier transform)
MATLAB Parallel Computing Toolbox
FLAME (Agent-based modelling)
CASTEP (Materiam science)
POLCOMS (Marine Ecosystem)
WRF (Weather Forecast)
NWCHEM (Computational Chemistry)
... and the list goes on and on.
Well, you could search for MPI benchmarks. There are several popular ones such as NAS, PALLAS, SPEC, etc.

What's a good matrix manipulation library available for C? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am doing a lot of image processing in C and I need a good, reasonably lightweight, and above all FAST matrix manipulation library with a permissive license. I am mostly focussing on affine transformations and matrix inversions, so i do not need anything too sophisticated or bloated.
Primarily I would like something that is very fast (using SSE perhaps?), with a clean API and (hopefully) prepackaged by many of the unix package management systems.
Note this is for C not for C++.
Thanks
:)
I'd say BLAS or LAPACK.
Here you have some examples.
OpenCV
alt text http://opencv.willowgarage.com/wiki/Welcome?action=AttachFile&do=get&target=OpenCV_Overview.jpg
You could try CUBLAS(CUDA Basic Linear Algebra Subroutines library) with CUDA enabled graphics card to do matrix manipulation on nVidia GPUs. It has quite significant performance boost than other CPU libraries, though it is not that lightweight to your requirement.
This page contains some description and figures about it.
I found this library and it's brilliant: Meschach
Armadillo have simple interface and can use different LAPACK and BLAS linear algebra libraries

Resources