This chapter discusses the scientific methodology behind Nanoscale Molecular Dynamics (NAMD), algorithmic details, NAMD's Charm++ based programming approach, software practices used in maintaining NAMD and Charm++, scaling results, and finally reliability and energy considerations for future architectures. The basic design of NAMDs' parallel algorithm dates to the early 1990s. The algorithms are said to be scalable, and the rate at which the problem size must increase with respect to the number of processors is the isoefficiency of the algorithm. The Charm++ runtime has a rich dynamic load-balancing framework that is based on over decomposition. The types of scientific questions that can be asked and answered about biomolecular systems vary with the scale and complexity of the system. Up to a few thousands of nodes, NAMD performs well on toroidal network topologies that are commonly found in supercomputing systems without worrying about the underlying network topology.