Estoy teniendo problemas de rendimiento utilizando la MCMCglmm
paquete en R para ejecutar un modelo de efectos mixtos. El código es este:
MC1<-MCMCglmm(bull~1,random=~school,data=dt,family="categorical"
, prior=list(R=list(V=1,fix=1), G=list(G1=list(V=1, nu=0)))
, slice=T, nitt=iter, ,burnin=burn, verbose=F)
Hay alrededor de 20.000 observaciones en los datos y que se agrupan en torno a 200 escuelas. He bajado todas las variables de la dataframe y quita todos los demás objetos de la memoria, antes de la ejecución. El problema que tengo es que se tarda mucho tiempo en ejecutarse, a menos que reducir las iteraciones a un inaceptable pequeño número. Con 50.000 iteraciones, se tarda 5 horas y yo tenemos muchos modelos diferentes para que se ejecute. Así que me gustaría saber si hay maneras de acelerar la ejecución de código, o cualquier otro paquete que podría utilizar. Estoy usando MCMCglmm
porque quiero que los intervalos de confianza para los efectos al azar.
Por otro lado, tenía la esperanza de conseguir un nuevo PC a finales de este año, pero con un poco de suerte puedo ser capaz de llevar eso adelante, así que me he estado preguntando cómo mejor gastar una cantidad limitada de dinero en hardware nuevo - más memoria RAM, CPU más rápido, etc. Viendo el administrador de tareas no creo que la RAM es el problema (que nunca llega a más del 50% de físico utilizado), pero el uso de la CPU no se mucho, por encima del 50%, lo que me parece extraño. Mi configuración actual es un intel core i5 a 2,66 GHz, 4GB de RAM, HDD de 7200 rpm. Es razonable que el que acaba de obtener la CPU más rápida posible, a expensas de más de RAM ? Me preguntaba también sobre el efecto del nivel 3 de la CPU tamaño de la caché en estadística informática problemas como este ?
Actualización: Tener frecuentes en la meta ASÍ que se me ha informado de reformular la pregunta y publicar en Superusuario. Para ello necesito dar más detalles sobre lo que está pasando "bajo el capó" en MCMCglmm. Estoy en lo cierto al pensar que la mayor parte de los cálculos del tiempo es dedicado a la realización de optimización - me refiero a encontrar el máximo de algunos complicado función ? Es la inversión de matrices y/o en otros las operaciones de álgebra lineal también una operación común que podría ser la causa de los cuellos de botella ? Cualquier otra información que pudiera dar a la Superusuario de la comunidad sería más gratamente recibida.