ITAM-DS / analisis-numerico-computo-cientifico

Análisis numérico y cómputo científico
Apache License 2.0
44 stars 189 forks source link
aws binder blas c cloud-computing convex-optimization cuda docker google-colab kubernetes lapack machine-learning matrix-computations mpi openmp python3 r tensor

Optimización

En este repositorio encuentran el contenido para los cursos de optimización* (aka opt) y optimización avanzada* (aka opt2) impartida en la maestría de ciencia de datos del ITAM por los prof. Erick Palacios Moreno, github: palmoreck y J. Ezequiel Soto S., github: cheque.

*El curso de optimización se imparte en agosto-diciembre y el de optimización avanzada en enero-mayo.

Se ha creado el siguiente libro* con el contenido de los temas en libro de optimización para su consulta. Este libro seguiremos a lo largo de los cursos.

*El libro fue creado con jupyter book.

En temario-opt encuentran el temario de optimización.

En pres-opt encuentran una presentación de introducción al curso de optimización 2022.

Dar click en el siguiente botón para unirse* al chat del curso de optimización 2022 en gitter: Gitter

*Se puede hacer el registro con su cuenta de github.


Optimización avanzada

En temario-opt-2 encuentran el temario de optimización avanzada.

En opt se obtiene documentación de un paquete de Python que sirve de apoyo para los ejemplos de las notas.

En pres-opt-2 encuentran una presentación de introducción al curso de optimización avanzada 2021.

Dentro del directorio deployments/minikube/hostpath_pv/ encontrarán archivos de configuración .yaml para despliegue de servicios y pipelines usando minikube, kubeflow y kale.


Imágenes de Docker creadas

Curso Imagen
Optimización palmoreck/jupyterlab_optimizacion:3.4.3
Optimización avanzada palmoreck/jupyterlab_optimizacion_2:3.4.3

Una vez hayan instalado docker* en sus computadoras, al inicio de cada nota del libro se indica el comando docker run para correr los contenedores. O bien pueden correrlos de acuerdo a la documentación de la imagen, ver por ejemplo running optimizacion docker image in a docker container, running optimizacion_2 docker image in a docker container .

*Ver herramientas/docker/ para referencias de docker.

Organización de github classroom para optimización 2022

La organización optimizacion-2022-gh-classroom fue creada para alojar sus repositorios de github classroom en los que entregarán sus prácticas. Ver github education como una referencia.

Ramas del repositorio.

Se tienen diferentes ramas que pueden ser accesadas como se aprecia en esta imagen:

imagen

Seleccionar por ejemplo la rama optimizacion-2021 (u otra) para información del curso de Optimización de 2021.

Dar click en optimizacion-2022 para la rama del curso de optimización 2022.

La rama gh-pages contiene los htmls para visualización del libro de optimización.

Breve explicación del repositorio en la rama main y su wiki.

En el Wiki encuentran información sobre Amazon Web Services.

En el directorio libro_optimizacion/temas/ están las notas escritas.

Sobre las notas.

Las notas de cada tema están escritas en Jupyter notebooks. Ver I python, You R, We Julia para algunas características de tales notebooks. Ver notebook para funcionalidad de los notebooks. Ver Jupyter kernels para una tabla de los jupyter-kernels disponibles en jupyter (que hacen posible ejecutar instrucciones en el lenguaje R, por ejemplo).

Interactividad

Para ejecutar las notas de forma interactiva dar click en el botón de binder Binder o bien dentro del libro de optimización colocarse sobre el ícono :rocket:

binder_thebe_screenshot_jupyter_book

y elegir una ejecución interactiva de los notebooks vía binder* o thebe. La ejecución con thebe se puede hacer directamente en la liga del libro o si se descargan los archivos a su máquina local también es posible la ejecución (pero requieren conexión a internet en cualquier opción).

*En la liga jupyterhub/binderhub encuentran más información sobre binder.

Para convertir notas a pdf

Usar el siguiente botón de binder (no es el mismo botón que para interactividad) Binder

Abrir una nueva terminal y ejecutar lo siguiente si se desean convertir las notas a pdf capítulo por capítulo de su elección.

#bash build_chapter.sh <aquí colocar cuál capítulo 1, 2, 3, 4, 5>
#por ejemplo: 
bash build_chapter.sh 3
#Una vez que finalice el comando anterior se puede ejecutar por ejemplo:
bash build_chapter.sh 1

Alternativamente si se desean los capítulos del 1 al 3 por ejemplo ejecutar lo siguiente.

bash build_all_chapters.sh 3
#del capítulo 1 al capítulo 5
bash build_all_chapters.sh 5

Los pdf's estarán dentro del directorio analisis-numerico-computo-cientifico/libro_optimizacion/temas/_build/pdf. Y se pueden descargar:

imagen imagen

Para descargar notas en html dentro de un zip

Usar botón de binder Binder

Abrir una nueva terminal y ejecutar lo siguiente:

bash
cd analisis-numerico-computo-cientifico/libro_optimizacion/temas/
jb build .
zip -r book.zip _build/html

El zip estará dentro del directorio analisis-numerico-computo-cientifico/libro_optimizacion/temas/. Y se puede descargar:

imagen imagen

Una vez descargado abrir el archivo README.html.

Nota: durante el segundo semestre del 2022 se estarán haciendo cambios continuamente por lo que tendrán que actualizar su descarga, clon o fork.