16 votos

¿Diferencias prácticas entre almacenar electrones 2 integrales y cálculo de según sea necesario?

Algunos textos que he leído sugieren calcular todas las integrales 2 electrones a la vez (teniendo en simetría permutacionales de cuenta) y algunos sugieren cálculo en la demanda de construir la matriz de Fock.

¿Cuál de estos es computacionalmente más eficiente, y cuando uno debe escoger un determinado enfoque sobre el otro?

7voto

danivovich Puntos 3067

Depende del tamaño del sistema. Hay un punto de cruce donde se hace más rápido para calcular las integrales como sea necesario, ya que como sistema se vuelve más y más grande, el número de operaciones de disco necesario para almacenar las integrales se hace muy grande, que en gran medida se ralentiza el cálculo. Esto es debido a que las operaciones de disco son relativamente lenta en comparación con la memoria de la manipulación.

Por lo tanto, la mayoría de los paquetes de software tiene una opción para calcular las integrales directamente y no de la tienda. En Molpro creo que este comando es gdirect.

Para ser más específicos, hay dos aspectos de almacenamiento, que son lentos cuando hay un gran número de integrales. Una de ellas es que las operaciones de disco en sí, son más lentos que acaba de hacer el cálculo, que es sólo la manipulación de la memoria. La otra es que las integrales son almacenados en una elegante manera de minimizar la cantidad de tiempo que tomará para encontrar integral que está buscando, pero cuando hay un número muy grande de las integrales, algunos no despreciable cantidad de tiempo en encontrar el valor de la integral. Cuando estos dos componentes (además de que tal vez los demás me faltan) son más grandes que el tiempo necesario hacer el cálculo integral, entonces es más rápido para calcular las integrales directamente.

Voy a dejar que alguien más cuantitativa con el cronometraje de las operaciones de disco y las tablas de búsqueda, ya que estos son más de ciencia de la computación preguntas. Pero bastante interesantes.

Para una referencia útil sobre cómo muchas de las integrales estamos hablando de almacenar en el disco, consulte esta pregunta.


También como una guía práctica, en mi experiencia de este punto de corte fue de alrededor de 14 hevay átomos con un triple zeta conjunto de base, pero esto significa casi nada, ya que esto será muy dependiente de la arquitectura de computación que está utilizando. Yo esperaría que el punto de corte sería mucho más alto para la mayoría de los sistemas de supercomputación como yo no tengo mucho disco para trabajar con comparativamente.

7voto

AnxiousReseter Puntos 23

Varios factores intervienen en la decisión de:

  • tipo de cálculo: para la mayoría de los post-SCF cálculo, almacenamiento basado en disco es indispensable
  • velocidad de grabación (disco de estado sólido?) vs velocidad de cálculo (GPU?)
  • la previsibilidad de que las integrales son necesarios. El cribado mediante la matriz de densidad de valor hace que algunas integrales irrelevante para la SCF, pero para el post-SCF, esto es diferente.
  • núcleo de memoria vs cantidad de memoria de disco asignado

De hecho, muchos de los programas en realidad no se decide, pero no tanto. ORCA, por ejemplo, permite un enfoque híbrido, tratando de almacenar las integrales en el disco en el orden que finalmente son necesarios. ORCA y Turbomole tienen algoritmos para decidir en una de las categorías de base, esencialmente, pasando por el total del momento angular debido a que el cálculo recursivo de alta angular momentum integrales caro. Algunas integrales sólo pueden ser necesarios cada pocas iteraciones, al realizar una actualización completa de la matriz de Fock en lugar de $\mathbf{F}_{n+1} = \mathbf{F}_{n} + \Delta \mathbf{F}$, otros cada iteración, lo que puede conducir a la modificación de la de almacenamiento.

Tenga en cuenta que el cálculo de todas las integrales y almacenamiento de ellos es a veces llamada la "convencional", mientras que el cálculo sobre la marcha es a menudo llamado "directo".

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X