9 meneos
560 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 ;)
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 ;)
|
Click para ver los comentarios