Pensando en paralelo

Edit (3 meses despues...): Que fallo mas tonto!, me olvide de colgar la implementación de la lista enlazada :(, está aquí [llist.c]

Entre los paradigmas de programacion en paralelo, destacan el multiproceso (varios procesos, un hilo para cada uno), y el multihilo (un solo proceso, varios hilos de ejecucion), la principal diferencia es que si un programa es multiproceso, la memoria (la RAM) no es compartida, esto hace que no haya que preocuparse de cuando se accede a los datos, o se modifican, para evitar que otras instancias del programa fallen, pero hace obligatorio el uso de IPC (Comunicacion Entre Procesos) para coordinar el programa.

Asi, con el multihilo el IPC se puede reemplazar por cosas como variables globales, ademas por no necesitar una region de memoria propia, es bastante mas ligero, aun asi, elijas el modelo que elijas, siempre tendras el mismo problema, que se puede resumir en

-¿Por que cruzo la gallina paralela la calle?  
-cruzar la calle Para

-¿Por que cruzo la gallina paralela la calle?  
-Para calle la cruzar

Que se quiere decir con esto?, que la programacion en paralelo implica que mucho codigo se va a invertir en coordinar el programa... y bueno, a quien le guste esa parte, pues bien, pero a quien no...

Esta presentacion tan... cutre , era para mostrar un pequeño codigo (aunque aun esta bastante verde) que pretende simplificar el uso de programas multihilo sobre listas de palabras, por ejemplo:

include "thread_launcher.h"

include

include

void print(char *s){

printf("%s\n",s); }

int main(int argc,char **argv){

if (argc<2){         printf("Uso: ./sample \n");

return 1;     }     FILE *f=fopen(argv[1],"r");

if (f==NULL){         printf("No se ha podido leer el archivo %s\n",argv[1]);

return 2;     }     launch_threads(2, print, f);

fclose(f);     return 0; }

Lo unico que hay que hacer (aparte de añadir -lpthread al compilar y importar el codigo), es abrir un archivo, y usar la funcion:

launch_threads(, , );

[ThreadLauncher.zip]

ps: el codigo esta acabado, pero no demasiado probado... aviso...

Hasta otra!

untagged

Bgame (un minijuego de 510 bytes) » « Otra de scripts greasemonkey [SY relinker]