I am trying to make a simple particle system for cloud and smoke simulation using OpenGL and CUDA.
How can I make the particles in the particle system behave as a real c
Maybe you should study the Reynolds Boids, it will provide you some ideas to avoid those problems:
http://www.red3d.com/cwr/boids/
The little grasshopper has some fantastic tutorials on particle systems of this nature: Noise Based Particles (smoke), Noise Based Particles II (smoke), Simple Fluid Simulation (smoke), and Deep Opacity Maps (clouds). Most of these are purely OpenGL but the overall techniques could be applied in CUDA / OpenGL interops if you so desired.