Warn users if multicore summarise_draws risks exhausting available ram
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- r
- Área
- performance
Línea de trabajo
Comienza por la ruta multicore de summarise_draws e inspecciona cómo se declaran las dependencias de los paquetes, especialmente si memuse puede añadirse como dependencia sugerida. Define el comportamiento de la advertencia de RAM y de la opción de exclusión descrito en el issue y, después, verifica que las ejecuciones multicore emitan una advertencia cuando la memoria estimada supere la RAM disponible y continúen cuando la seguridad esté desactivada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
My first big test of multicore summarise_draws on a really big (~9 GB in memory) array plowed straight into the swap on my 40 GB machine and I had to kill it. Second test, after reducing cores from 4 to 3, was awesome!
If a naive user runs their big model for days and then overenthusiastically runs summarise_draws prior to saving, they could be in a world of hurt.
Given that the main use case for multicore processing with summarise_draws involves really big draws arrays, we could consider adding a .ram_safety = TRUE argument, and then doing:
if (.cores > 1 & .ram_safety & (memuse::memuse(object.size(x)) > (memuse::Sys.meminfo()$totalram / (.cores + 1)))) {
warning(paste("The memory requirements of multi-core processing with", .cores, "cores may exceed the RAM on your system.",
"Consider using fewer cores. If you wish to proceed with", .cores, "cores, set `.ram_safety = FALSE`",
"and save any important objects prior to running."))
} else {
# Do the computation
}
Main drawback is the extra package requirement for multicore (which could go in suggests).
- Lenguaje dominante
- R
- Estrellas
- 172
- Forks
- 27
- Merge medio
- 5 d 12 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de stan-dev/posterior
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Use testthat 3ePosiblemente ocupada @mcol la tomó hace 7 días. Abiertogood first issue test
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de stan-dev/posterior
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
cran-task-views/Spatial#127 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Add two cautions to the `simulate_dyad_responses()` helpPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertodocumentation priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Pascal-Kueng/dyadMLM#179 ·
Los mantenedores suelen responder en 1 día
-
Consider changesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OHDSI/OmopSketch#618 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
GSK-Biostatistics/tfrmt#854 ·