Thursday, May 22, 2008

Actualizaciones

Se que tiene mucho tiempo que no escribo nada pero e estado trabajando mucho en la escuela ya saben, les comento que ya voy por el tercer cuatrimestre y empezare a subir las tareas de el segundo cuatrimestre de todas las materias para que puedan descargarlas, independientemente de que esten bien todos los puntos de ellas. Como humano tube muchos errores en algunas pero en otras sali muy bien.

Asi que estamos en contacto y espero que lean que se hace por aqui en esta fantastico Instituto. 

Por cierto ya se han publicado las fechas de el proceso de admicion del departamento de computacion, pueden verlo en el siguiente vinculo: http://www.cs.cinvestav.mx/Posgrado/posgrado.html

Estamos en contacto...

Labels: , ,

Thursday, January 17, 2008

"Software and the Concurrency Revolution" Lecture

The original document can be downloaded here.
As first homework of the class of concurrent proggraming we read these article, and these is a small sumary.

The computers are growing in these last days in a way that before were rare, these days the hardware is changing to a multicore processors but that the people didnt understand is tha it only benefit to a concurrent applications(that exist since 30 years). Today desktop applications will not run much faster than they do now. In fact they may run slightly slower on newer Chips, as individual cores become simper and run at lower clok speeds to reduco power consuption on dense multicore processors.

One of the conceptual problems in concurrent programing is that the concurrency requires programmers to think in a way humans find difficult, nevertheless, multicore machines are the future.

Consequences: a new era in software
Semaphores and coroutines are the assembler of concurrency, and locks and threads are the slightly higher-level structured constructs of concurrency. What is needed is OO (Object Oriented) for concurrency.

If you think that sequential programming is hard, concurrent programming is demostrably more difficult, becouse it requires synchronization analysis and other things.

Differences between client and sever applications
For many server-based programs, typically have an abundance of parallelism, as they simultaneously handle many independent request streams.

In client applications is not nearly as well structured and regular typically concurrency is found by dividing a computacion into finer pieces.

Programming models
parallel programming models differ significantly in two dimensions: granularity of the arallel operations and the degree of coupling between these tasks.

Parallel instruction execution generrally requires hardware support, Multicore processors reduce communicacion and synchronization costs, as compared with conventional multiprocessors, witch can reduce the overhead burden on smaller pieces of code.

The other dimension es he degree of coupling in the commuication and synchronization between the operations. The ideals is none: operations run entirely independently and produce distinct outputs.

Independent parallelism
es the parallelism in wich one or more operatiosn are applied independently to each item in a data collection.

Fine-granied data parallelism relies on the independence of the operations executed concurrently. They should no t share input data or results an dshould be executable without coordination.

Regular parallelism
Thw next step is to apply the same operation to a collection of data when the computations are mutually dependent

The problem of shared state, and why locks aren't the answer
When two tasks try to access the same object, and one could modify its state, if we do no thing to coordinate the tasks, we have a data race. Races are bad because the concurrent tasks can read and write inconsistent or corrupted values.

There are a rich variety of syncronization devices that can prevent races. The simplest of these is a lockk. Each task that wants to access a piece of shsred data must adquire the lock for that data, perform its computation, and then release the lock so other operations on the data can proceed.

A fundamental problem with locks is that they are not composable. You can't take two correct lock-based pieces of code, combine them, and know that the result is still correct.

in its simplest form deadlock happens when two locks might be adquired by two tasks in opposite order: task T1 takes lock L1, task T2 takes lock L2 and then T1 tries to take L2 thile T2 tries to take L1. Both block forever. There are some techniques for avoiding deadlocks, lock leveling and lock hierarchies..

There are at least three major problems with synchronized methods. First, they are no appropiate for types whose methods call virtual functions on other objets, synchronized methods can perform too much locking, by acquiring and releasing locks on all objects instances. Third, synchronized methods cna also perform too little locking, by no preservin atomicity when a program call multiple methods on a object ro on different objets.

...
...
...

Original document writed by Herb Sutter and James Larus can by downloaded from here.

Wednesday, January 16, 2008

Notas puntuales de: Bases de Datos



  • Fundamentos de bases de datos


    • Transaction Database ACM


  • Tecnologías de Bases de datos


    • Data & Knoledge IEEE

      • Softare & Practice.


  • Sistemas de Información

    • Information System

  • Teorías de Bases de Datos

    • Teorías algebraicas (Algebras Universales)
    • Teorías de la Lógica (Lógicas)

  • Modelo de datos

    • CODASYL Comité de Datos Sistemas y Lenguajes (Cobol, sistemas de bases de datos, principios de base de datos)

    • Modelo de datos de Red y Jerárquico (Base: Teoría de Conjuntos)

      • Base de Datos
      • Sistema maneador de base de datos (DBMS)

    • Modelo de datos Relacional

      • Contiene


        • Modelo de datos (Esquemas o Objetos de Relación)

        • Algebra de Relación Relación n’aria R=(A1,... , An)

        • Restricciones de Integridad


      • Modelo matemático es M= representa que el modelo esta representado por espacio de relación R el Algebra que lo representa A y las restricciones de integridad I.


    • Modelo Entity-Relationship

      • Trato de unificar los modelos de Red, Jerárquico y Relacional

    • Modelo Semántico de datos

      • Redes Semánticas

      • Modelo Funcional de datos

      • Semántica de datos & Conocimiento

      • Abstracción y Generalización



  • Lógica y Bases de datos

    • Fundamentación de las BD desde la lógica.

    • Visión de las BD desde la Lógica.

    • Explicacion

      • Modelo Relacional <--> Modelo de la lógica de primer orden

      • Relaciones R - son predicados.

      • Lenguaje relacional - lenguaje de la lógica



Labels: ,

Monday, January 14, 2008

Notas puntuales de: Bases de datos


Materia Bases de Datos Impartida por el Dr. Sergio Chapa.
  • Sistemas Biológicos es un área muy interesante para el futuro de las ciencias de la computación.
    Especialmente en el diseño de datos y modelos de datos

  • Bases de Datos e Inteligencia Artificial Una buena bibliografía aunque es posible que ya no se siga editando.

  • Al inicio todo computo se basaba en cintas. Y una de las primeras metas era hacer que el computo se hiciera en memoria, para poder realizar búsquedas, haching, etc.

  • El problema de la partida doble es un problema viejo y puede ser resuelto como un problema de optimizaron.

  • Una base de datos es un conjunto de datos, todos relacionados entre ellos.

Labels: ,

Friday, January 11, 2008

Vinculos, WatchDog, uptime


Notas de la clase de Sistemas Operativos impartida por el Dr. Dominique Decouchant

Comandos
$ln: crea una liga dura entre archivos ($ln )
$ln -s: crea una liga simbolica. 
$ll : es como ls pero muestra la cantidad de referencias de los bloques de los archivos creados con ln.
$uptime: dice estadísticamente la carga del sistema en diferentes lapsos.

WatchDog: es un proceso que que esta constituido por un solo ciclo infinito que mantiene a el procesador trabajando cuando no se esta siendo usado por el usuario por que el procesador no puede detenerse (si eso sucediera el sistema se detendría). Para que este proceso no interrumpa o estorbe a procesos importantes del sistema se le asigna el menor nivel de prioridad del sistema a ese proceso, así que dará en background en cuanto otro proceso requiera usar el procesador.

Labels: ,

Segundo cuatrimestre



En esta ocasión les comento que por un buen rato e estado pensando sobre que materias tomar y no repetir el error del cuatrimestre pasado de estresandome entrando a todas las materias para saber de que se tratan (para eso ya tuve un intensivo cuatrimestre pasado), ahora con el apoyo de el Doctor Matías pude definir mi evolución en este siguiente paso en la maestría. Mi intención era tomar Optimización, Inteligencia Artificial, Sistemas Operativos y Bases de Datos. Pero me invitaron a tomar una clase de programación concurrente (de la cual no sabia ni pio), y me di cuenta que es una muy buena herramienta que me puede servir, entonces entre en problemas por que solo podemos llevar cuatro materias y al hablar con el Dr. Matías resalto que quería tomar IA por que tenia la cosquilla de aprender a implementar inteligencia artificial y me comento que si llevaba optimización el Dr. Carlos Coello, el la daba implementando Computación Evolutiva que es una área muy especifica de IA y que eso podría satisfacer mi curiosidad de saber sobre la materia y dejarme el espacio necesario para poder llevar programación concurrente, lo cual me agrado mucho. Ya que aprenderé mas con el mismo tiempo.

Entonces mi carga curricular para este cuatrimestre queda como Optimización, Programación Concurrente, Sistemas Operativos y Bases de Datos.
Nota: Las imágenes son de los doctores Matías (Izquierda) y Carlos Coello (Derecha)

Labels:

Thursday, January 10, 2008

Recuento de los Daños.


Hello fellows, comento que empezare una serie de posts denominada "Recuento de los daños" donde comentare las características de cada uno de los cursos que tome, impresiones de los maestros, y alumnos, tareas y cosas que hayan pasado (realmente me gustaría incluir todo esto pero no estoy muy seguro de realmente poner todos estos puntos en cada curso). 

Ahora solo compartiré parte de mis impresiones generales en este cuatrimestre.

Como siempre (según el Dr. Coello, en una platica de bienvenida), los alumnos de nuevo ingreso tratando de cubrir nuestras dudas, necesidades de aprender y comprender que tipo de maestros hay además de los tipos de materias, siempre entramos a todos los cursos, disque para ver de que se trata y conocer a los maestros. Actividad que si de por si es desgastante en esta institución es mucho mas por el nivel de las clases. Así que imaginense tratando de entrar a todas las clases de la primera tabla en esta pagina. Y todas dejando tareas  o los doctores "espantando" a los alumnos. En esas primeras dos semanas fueron donde empezaron las primeras risas con los doctores o primeras impresiones dependiendo de cual sea el caso. De esta manera se empeso después de ver algunos temas interesantes y retadores y al hablar con mi asesor de maestria el Dr. Matias al respecto llegue a la conclusión de entrar a las materias de Matemáticas Discretas, Graficacion, Ingeniera de Software y ProgramaciónOrientada a Objetos, impartidas por los doctores Debrup Chakraborti, Luis Gerardo de la Fraga, Pedro Mejía Alvarez y Dominique Decouchant con la Dra. Sonia Mendoza Chapa.
Todos excelentes Doctores con una gran habilidad y lo que mas me gusto des sus clases es que dificilmente tenían un error y si era el caso, se corregían automáticamente, además de la gran cantidad de conocimiento que destilan en cada una de sus secciones de clase, en realidad te hacen sentir en la cima de algo que toda vía no se bien que es.
Al entrar tenia una fuerte inclinación a la computación evolutiva por que me e enterado que es algo muy complejo y eso a mi me encanta, pero en el transcurso de los cursos me latió mucho el tema de graficación. O específicamente de visualización por que e tenido experiencia en esa área y se me ocurren mas cosas que hacer, pero siguen siendo aplicaciones de tecnologías quizá no muy dignas de una tesis de maestría en ciencias, pero el tiempo lo dirá y esta cabeza igual.
No cabe duda que este tiempo aquí en el DF me a ayudado a madurar bastante en el sentido de mantenerme a mi mismo y vivir solo, me a quitado algunas dudas y miedos que tenia en la cabeza. Estas entre otras muchas cosas han sucedido en este cuatrimestre en esta carrera, pronto escribiré sobre el recuento de los daños para las materias que tome.

Labels: