Algoritmos
12 meneos
550 clics

Pruebas de tiempo en una Raspberry 2

Si tenéis una Raspberry 2 y podéis echarme una mano midiendo unos tiempos de los siguientes programas que están en github.com/gallir/concurrencia_source_samples

Necesito que ejecutéis
$ time programa
tres veces y me paséis los resultados y el SO que tenéis (Ubuntu, la claśica de raspberry, etc.). Antes de ejecutar entrad a los directorios hardware y spinlocks y ejecutad make para generar los ejecutables.

Los programas que necesito tiempos son los siguientes:

hardware/counter_test_and_set
hardware/counter_compare_and_swap

spinlocks/test_compare_and_swap
spinlocks/compare_and_swap_backoff
spinlocks/compare_and_swap_yield

spinlocks/test_test_and_set
spinlocks/test_and_set_backoff
spinlocks/test_and_set_yield

spinlocks/ticket_lock
spinlocks/mcs_spinlock
spinlocks/clh_spinlock

Me lo podéis dejar en comentarios o email a gallir en gmail.com.

Muchas gracias, es para el libro gallir.wordpress.com/principios-de-concurrencia/
9 meneos
561 clics

Un ayuda si tenéis una Raspberry 2

Probado y ya funciona. Gracias.

Pido una favor para los que tenéis Raspeberry 2 u otro cacharro ARM con varios núcleos (y compilador instalado), es para asegurarme que un código en ensamblador funciona correctamente en ARM con multiprocesador (es para el libro gallir.wordpress.com/principios-de-concurrencia/)

El código está en github.com/gallir/concurrencia_source_samples/tree/master/arm (un .c, un .s y el Makefile).

Sólo tenéis que hacer make y generará el ejecutable. Luego quiero que lo probéis varias veces, debe salir algo como:

./stack_llsc_freelist
3 malloc
2 malloc
1 malloc
0 malloc
End 1
End 3
End 2
End 0

El orden no importa, no deben salir más de cuatro malloc (es posible que salga alguno menos). Tampoco debería salir ningún mensaje de cola vacía o de errores de punteros. Como es un tema de concurrencia, la probabilidad que salga es baja, por eso mejor probarlo varias veces (o si trasteáis con el código, aumentarle el número de OPERATIONS en el .c).

Si me podéis dar los tiempos mejor, en mi Raspberry 1 (no tengo la dos todavía, por eso pido ayuda) sale lo siguiente:

$ time ./stack_llsc_freelist
3 malloc
2 malloc
1 malloc
0 malloc
End 3
End 0
End 1
End 2

real0m3.623s
user0m3.540s
sys0m0.000s

Muchas gracias.

PS: Acababa de poner lo mismo en plus.google.com/+RicardoGalliGranada/posts/fX8z7jtg84S y me avisan de esto twitter.com/Phoenix_Alx/status/571769535910567937 ;)
5 meneos
217 clics

Coordinar la escritura de un archivo

Buenas ver si podéis ayudarme. Tengo un programa donde pueden participar N personas realizando tareas repitiendo estás tareas durante una cantidad de rondas. Cada una lo hace en paralelo.

Lo que busco es que al final de cada ronda, se escriba en un fichero los datos de los resultados de ea tarea de todos los participantes.

El problema es eso que se ejecuten paralelo y no hay ningún proceso central que los coordine. Bueno , pueden guardar datos en memoria que todos comparten

¿Qué pensáis que puedo hacer?

EDITADO :SOLUCIONADO

menéame