I am a second-year graduate student in physics at the University of
Illinois at Urbana Champaign. I have been working under the direction
of Professor David Ceperley on the development of Quantum Monte Carlo
(QMC)
techniques for the study of condensed physical and chemical systems at
the nano-scopic level. Quantum Monte Carlo techniques have a
distinct advantage over other methods in computational chemistry and
condensed-matter physics in that QMC can provide exact values for the
physical properties of the system under study. It can provide, for
example, energy differences between chemical species, which can be
used to calculate the rate at which a chemical reaction proceeds. A
very high degree of accuracy is required for this type of computation,
which is not afforded by other methods. The eventual applications of
these techniques are nearly limitless, ranging from the computational
pharmaceutical design to the study of poorly-understood solid state
systems, such as those exhibiting high temperature superconductivity
or giant magneto-resistance (GMR).
The major limit in QMC is the size of the systems that can be studied.
The largest systems that have been studied have contained little over
a hundred atoms. While increases in hardware speed are continually
extending this limit, this must be accompanied by algorithmic
improvements for significant progress to be made. Over the past year,
I have been exploring an alternative technique for the study of the
properties of molecules at the quantum level. Currently, the most
well-accepted technique performs efficient calculations of the total
energy of molecules, but suffers in the calculation of all other
properties. The alternative technique, based on the Monte-Carlo
evaluation of path integrals, promises to provide more accurate and
efficient calculation of other properties.
My major goal for future research is in the development of an accurate and efficient way to introduce pseudopotentials into QMC calculations. It has been known for decades that only the outermost, or valance electrons, participate to any appreciable extent in chemical bonding. The electrons near the nucleus, known as the "core" electrons, are quite inert and are not affected by chemical reactions. In other techniques of computational chemistry, it has proven extremely useful to explicitly simulate only the valance electrons, while replacing the core electrons by an effective interaction, or pseudopotential. Psedopotentials are a means to capture the effect of the core electrons without the expense of their explicit simulation. For heavy atoms such as the transition metals, the vast majority of the electrons are core electrons. Therefore, by the introduction of pseudopotentials, most of the computational work can be eliminated. There have been some attempts to apply the pseudopotential technique from other methods to QMC. These have met with marginal success, however, because they have not been explicitly developed to be applied to QMC. It is one of my major goals to develop such a QMC-specific method. If successful, it will make accessible areas of the periodic table, which were hitherto too computationally expensive to study with QMC.
On hearing the announcement for this workshop, I read about the ACTS
tools and I found several and would be invaluable to my research. As
mentioned above, QMC is very computationally expensive and thus
requires the development of highly-parallel code for the study of any
but the smallest systems. Two toolkits in particular struck me as
having the possibility of being extremely useful for QMC calculations.
First, the POOMA library contains classes for distributing particles
across nodes and operating on them in a data-parallel fashion. While
traditional QMC codes have not operated in a data-parallel style,
indications suggest that for the study of very large systems, a shift
to a data-parallel algorithm may be required.
The fault tolerance, steering, and visualization capabilities of the
CUMULVS toolkit would also be a great asset to the codes I will be
developing. Researchers in my group frequently start single jobs
which will consume 10,000 CPU hours. With a large computational
investment in each run, fault-tolerance and frequent check-pointing is
a necessity. The ability to dynamically visualize data, make
decisions, and then steer runs on the basis of that information would
contribute greatly to the effectiveness of these runs as well.
In most of my development efforts, I have chosen to use C++ for the
structure, readability, and reusability of properly written code. I
have observed, however, some performance loss when compared to
FORTRAN. At least two packages in the ACTS Toolkit would greatly
assist in mitigating this performance penalty. The PETE library, I
believe, would directly improve performance through template
optimization of operations. In addition, I believe I could use the
TAU analysis package to pinpoint the bottlenecks in my codes.
I would greatly appreciate the opportunity to learn to how to make most effective use of these toolkits and would also like very much to see how the other ACTS tools could be utilized in my development efforts.