Specifically, I'm curious if there are any programs which come close to Gaussian in breadth but also take advantage of things such as GPU processing.

There's a page on wikipedia that goes through several options but I'd like to get feedback from actual users.

  • $\begingroup$ Personally, GPU code is still very young. My lab won't even consider it as a viable resource until (much) more features are added and bugs fleshed out. Off the top of my head? No GPU code exists that comes close to mirroring Gaussian or other CPU alternative (its been a while since I've checked). I leave this as a comment since I cannot address GPU programs directly but if you were interested in others I'd be happy to write something up. $\endgroup$ Aug 23 '12 at 23:03
  • 2
    $\begingroup$ Hi Radu, your question is very very broad. There are hundreds of computational chemistry codes out there, so you really need to specify what specific features (quantum chemistry methods, approximations, etc.) you're looking for. Then we can better help you… $\endgroup$
    – F'x
    Aug 24 '12 at 7:12
  • 1
    $\begingroup$ Tempted to -1 for a question requesting an open-ended or list-based response, but I can't remember if we do that here. $\endgroup$
    – Aesin
    Aug 24 '12 at 20:45
  • $\begingroup$ Hi. You should look at this page for a VERY brief intro to some linear algebra GPU packages. If you're really into computational chemistry, you don't need to use Gaussian at all - every method available in Gaussian is first implemented by people writing their own code, then ported to Gaussian. You can develop your own GPU code in any language you want, and then port it to Gaussian. Don't expect to get paid, though. $\endgroup$
    – CHM
    Aug 26 '12 at 17:56
  • $\begingroup$ And when I mean "ported to Gaussian", I mean written in FORTRAN and then added to the program. No personal experience with Gaussian, so that's from a couple of people working in the field who have. $\endgroup$
    – CHM
    Aug 26 '12 at 17:58

"Specifically, I'm curious if there are any programs which come close to Gaussian in breadth"

Not really, as far as I can tell. Gaussian is a massive work by many, many people over many, many years, and the reason it's still one of the most popular packages, as far as I can tell, is that it does most things (notably excluding non-GTOs), even if it's not necessarily the fastest or the best at the things it does in every case.

"but also take advantage of things such as GPU processing."

Double no. As LordStryker says above, GPU programming is pretty new, and most of the resources I've seen for it are C-based, while a significant chunk of scientific development still takes place in Fortran. I suspect library-based encapsulation of GPU-running numerical routines may improve this over time (I mean, by introducing people to the idea of getting speedup by using the GPUs more easily), but I wouldn't hold my breath. It'll be interesting to see what hybrid chips with multiple types of core, or the Xeon Phis will be able to do, though.

  • $\begingroup$ Regarding the first part, I think QChem is the closest program to being a full-fledged Gaussian alternative/replacement. Their documentation is a thing of beauty as well. $\endgroup$ Aug 27 '12 at 0:35

I've always heard GAMESS was the canonical alternative to Gaussian. I don't know much about either, though, aside from the fact that GAMESS doesn't use GPU processing either and is free as in beer.

I don't know how these programs work on a low level, but matrix-vector operations usually don't get much of a speed boost from using GPUs. If these sorts of packages need lots of matrix-vector or vector-vector operations, GPU processing would probably not speed things up very much.

  • $\begingroup$ Can you justify/explain your claims that linear algebra does not benefit from massive parallelism offered by GPUs? $\endgroup$
    – CHM
    Aug 26 '12 at 18:34
  • $\begingroup$ At seminar given at my university, the speaker stated that Matrix-Matrix operations could have their run time reduced by a factor of ~10 over a single CPU, matrix-vector operations by a factor of ~3, and essentially no speedup for vector-vector operations. It's not that BLAS level 2 operations wouldn't benefit from GPU, its that the benefit isn't as great as running it on several CPUs. $\endgroup$
    – Dan
    Aug 27 '12 at 7:20
  • $\begingroup$ Ah, I was under the impression that such operations would benefit from massive parallelization. $\endgroup$
    – CHM
    Sep 1 '12 at 23:27
  • 1
    $\begingroup$ @CHM: I've learned a bit more about GPU processing, and it seems that quantum chemistry programs can benefit quite a bit, but that that basis sets and algorithms used for multiple CPUs are totally unsuitable for GPUs. As a general rule, you usually have to build your program to use GPUs from the ground up. $\endgroup$
    – Dan
    Jan 5 '14 at 23:17

There is Firefly (the package formerly known as PC GAMESS:).

Firefly also has CUDA capability. Here are some benchmarks.

Firefly is free and the project is active (latest release is from 2015.09.05).

enter image description here

Disclaimer: It's about two years since I've last used Firefly and I never used in on the GPUs.


Not the answer you're looking for? Browse other questions tagged or ask your own question.