Nuevo proyecto: C, makefiles y esas cosas

Hola,

Hace unas semanas empecé un nuevo proyecto del que no he querido hablar hasta que ya tuviese algo empezado y creo que ahora es el momento.

Estuve investigando proyectos interesantes en GitHub para pillar ideas y encontré un miniproyecto de multiplicación de matrices haciendo multithreading. Estaba hecho en C, usando pthreads[1] y esas cosas.

Cloné el repo para investigar un poco porque me encantan las matemáticas y la ciencia. Así que lo primero que he hecho ha sido un miniparser de archivos .mat de Octave o Matlab para poder cargar matrices. El plan es hacer unas matrices enormes y probar la diferencia de rendimiento con multithreading y sin él y la diferencia de multiplicarlas en C y en el propio Octave (cuyo core es, sobre todo, C++). Hablaré de los resultados de esto en algún momento.

Viendo que eso me motivaba me planteé hacer una librería de matrices y vectores (que podrían ser señales también) con el máximo rendimiento que pueda. Simplemente para leer y aprender. El objetivo es trabajar las siguientes cosas:

  1. Programación estructurada. Sí, llevo tanto tiempo orientando a objetos que a veces me cuesta. 🙂
  2. C a nivel bajo. Con el mínimo de librerías.
  3. Programación de C en Linux. Pthreads, librerías, tratamiento de argumentos, compilación, linkado, etc.
  4. Usar makefiles. En mis proyectos en Qt o para KDE siempre uso CMake (aunque tampoco es una herramienta que controle), así que nunca he hecho makefiles serios (CMake te los construye sólo).
  5. En general hacer programas más grandes y desde el principio.

Bien, ya presentaré el proyecto mejor cuando suba el código, pero la idea es hacer una librería dinámica (un shared object, un .so de toda la vida) con todas las funciones que haga para que cada uno se pueda programar lo que quiera y algunos binarios standalone para que se puedan ejecutar desde la consola las cosas más comunes y sobre todo para hacer pruebas.

Poco más de momento. Lo primero que he tenido que tenido que leer han sido temas de hacer makefiles, sin autotools ni CMakes ni historias, así que puede que hable del tema a no mucho tardar.

Intentaré ir hablando de lo que voy haciendo, no esperéis verdadera utilidad en el tema, seguramente haya millones de maneras de hacerlo mejor. El plan es aprender (como siempre) y que no se me olviden las matemáticas 😉

Y eso es todo, espero que este proyecto me dé cosas de las que hablar durante un tiempo. Pronto más información del tema.

Abrazos.


[1]: pthread viene de “POSIX thread”, son la forma en la que el estándar POSIX te permite trabajar con hilos.

Anuncios

Un pensamiento en “Nuevo proyecto: C, makefiles y esas cosas

  1. Libmatthread: Mi nueva librería y locura matemático-matricial en C – Free Hacks!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s