Git Product home page Git Product logo

analisis-numerico-computo-cientifico's Introduction

analisis-numerico-computo-cientifico.

Este es el repositorio para la materia de "Métodos Numéricos y Optimización (MNO)" impartida en la maestría de ciencia de datos del ITAM por el Prof. Erick Palacios Moreno, github: palmoreck.

Dar click en liga para el temario.

En esencia el curso sigue un desarrollo de acuerdo al siguiente dibujo:

Los módulos del 1 al 3 constituyen building blocks para el módulo 4.

Dar click en el siguiente botón para unirse al chat del semestre enero-mayo 2020 en gitter: Gitter Se puede hacer el registro con su cuenta de github.

Ramas del repositorio.

En este repositorio se han creado diferentes ramas que pueden ser accesadas como se aprecia en esta imagen:

imagen

Seleccionar por ejemplo la rama mno-2018-1 (u otra) para información del curso de MNO de 2018.

Dar click en liga para la rama del curso del semestre enero-mayo 2020.

Breve explicación del repositorio en la rama master.

En la carpeta C encuentran:

Los directorios de Python y algoritmos serán incorporados a las notas. Este trabajo será realizado durante el semestre enero-mayo 2020.

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

Normalmente los pull requests no se hacen a la rama master salvo haya una modificación a realizar en tal rama (modificación para algún código o contenido por ejemplo).

A continuación se presentan links a las notas y material de cada tema. Adicionalmente se encuentran en el directorio temas.

Índice de notas.

Cada número contiene información del tema respectivo, dar click en el tema de interés. Las notas están escritas en Jupyter notebooks. Ver I python, You R, We Julia para algunas características de tales notebooks.

Adicionalmente, algunos temas tienen un botón de binder Binder para ejecutar de forma interactiva el contenido (ojo: cada botón tiene ambientes de docker distintos por lo que un mismo botón puede no funcionar para notas de temas distintos, p.ej. el botón de la nota 1.2 no funciona para la 1.4).

Tenemos otro botón :) Este es de google colab Open In Colab para ejecución de forma interactiva de los notebooks de jupyter en los que se utilizan GPU's para procesamiento.

Ver dockerfiles-for-binder para documentación de las imágenes de docker usadas y en la liga jupyterhub/binderhub encuentran información de binder.

Ver research.google...faq y colab-github-demo para más información de google colab.

Ver Jupyter kernels para una tabla de los kernels disponibles en jupyter.

1.1 Analisis numérico y cómputo científico.

1.2 Sistema de punto flotante. Binder (nota escrita en jupyterlab + kernel de C)

1.3 Condición, estabilidad y normas. Binder (nota escrita en jupyterlab)

Métodos de diferenciación e integración numérica:

1.4 Polinomios de Taylor y diferenciacion_numerica. Binder (nota escrita en jupyterlab + kernel de R)

1.5 Integración numérica Binder (nota escrita en jupyterlab)

1.6 Perfilamiento de código

  • Python Binder (nota escrita en jupyterlab)

  • R

  • C (pendiente)

1.7 Opciones para resolver bottlenecks:

2.1 Un poco de historia y generalidades.

La descripción y uso de las siguientes librerías/módulos/paquetes/API's no tiene el propósito de ser extensa ni completa pues en un futuro pueden existir herramientas con mejor desempeño, documentación o comunidad. En las referencias de cada nota aparecen ligas y libros con documentación para extender su aprendizaje.

2.2 Sistemas de memoria compartida

2.3 CUDA

3.1 Vectorizacion, BLAS y el uso del caché eficientemente

3.2 OpenBLAS

  • Ejemplos:

    • Python Binder (nota escrita en jupyterlab) <- Si utilizan binder hay que ir al home del user jovyan y ejecutar bash run_installations.sh

    • R Binder (nota escrita en jupyterlab + kernel de R) <- Si utilizan binder hay que ir al home del user jovyan y ejecutar bash run_installations.sh

3.3 Solucion de sistemas de ecuaciones lineales y factorizaciones matriciales

4.1 Optimización numérica y machine learning Binder (nota escrita en jupyterlab)

Nota del prof: estoy reescribendo las notas y añadiendo botones para interactividad.

4.2 Algoritmos para optimización sin restricciones

Implementaciones de algoritmos para ecuaciones no lineales y optimización convexa

Ecuaciones no lineales

Algoritmos para optimización sin restricciones

Algoritmos para optimización con restricciones de igualdad: ecuaciones lineales

Algoritmos para optimización con restricciones de igualdad: ecuaciones lineales y desigualdad

Ver RAPIDS

V Cómputo en la nube

Ejemplos de Uso:

  1. Antares3

  2. Pangeo

Amazon Web Services (AWS).

AWS.0 Tutorial para activar créditos de Amazon Web Services

AWS.1.1 Configuración de servicios básicos de AWS

AWS.1.2 Instalación de herramientas útiles en AWS

AWS.2 AWS y OpenMPI

AWS.3 AWS y Sun Grid Engine

AWS.4 AWS y Kubernetes

AWS.5 AWS y Dask

AWS.adicional1 [AWS: Relational Database System]


Antiguo diseño de README:

2.2 Sistemas de memoria distribuida: MPI.

Ejemplos con openmpi:

2.3 Sistemas de memoria compartida: Pthreads

Ejemplos con Pthreads

2.4 Sistemas de memoria compartida: openMP

3.3 Sistemas de ecuaciones lineales: métodos iterativos.

3.4 Tensores. Una introducción.

3.5 Aplicaciones del álgebra lineal numérica.

3.6.1 Multiplicación de matrices con cómputo en paralelo.

3.6.2 SVD con cómputo en paralelo.

4.3.1 Teoría de convexidad: conjuntos convexos.

4.3.2 Teoría de convexidad: funciones convexas.

4.4 Dualidad.

4.5.1 Problemas de optimización convexa: definiciones

Ejemplo de métodos de bisección, punto fijo y Newton para resolver ecuaciones no lineales

4.5.2 Algoritmos de optimización sin restricciones

4.5.3 Algoritmos de optimización con restricciones de igualdad

4.5.4 Algoritmos de optimización con restricciones de igualdad y desigualdad

analisis-numerico-computo-cientifico's People

Contributors

amaurs avatar arianalopez avatar ca-mi-lo avatar csampez avatar dfceron avatar fernandatellezg avatar gmontanari avatar gquirozm avatar hatshex avatar isabelmillan avatar ixime avatar jccastrom avatar lizcontreras avatar marianaga89 avatar marz7002 avatar maximilianoar avatar mcarmonabaez avatar mjgq avatar mleblanc03 avatar monicabc avatar ollin18 avatar omisimo avatar oscardaniel88 avatar palmoreck avatar radianv avatar raulzr avatar ricardolastra avatar songeo avatar visagu55 avatar walterms avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.