fbpx
Wikipedia

Uso compartido falso

En ciencias de la computación, el uso compartido falso (conocido como false sharing en inglés) es un patrón de uso que puede reducir el rendimiento de cachés distribuidas con coherencia en los bloques de recurso de tamaño más pequeño gestionado por el mecanismo de caché.

Funcionamiento

Cuando una parte del programa intenta acceder periódicamente a datos que nunca serán alterados pero que comparten bloques de caché con datos que son alterados, el protocolo de caché puede forzar al programa a recargar todo el bloque a pesar de no existir necesidad para ello. El sistema de caché no está al corriente de la actividad de este bloque y fuerza al programa a usar el sistema de caché como si se diera un verdadero uso compartido de un recurso.

El uso más común de este término es en la caché de procesador en sistemas multiproceso, en estos sistemas la memoria se cachea en bloques de pequeñas potencias de dos del tamaño de la palabra de procesador (por ejemplo 64 Bytes contiguos alineados). Si dos procesadores operan sobre datos independientes en la misma región de una dirección de memoria, los mecanismos de coherencia de caché forzarán esperas en la memoria además de perder ancho de banda de procesador. El uso compartido falso es inherente a los protocolos de caché sincronizada y puede existir en otros entornos como sistemas de archivos distribuidos o bases de datos.

Ejemplo

struct foo { int x; int y; }; foo f; /* La siguientes funciones se ejecutan de manera concurrente: */ int sumar_x() { int resultado = 0; for (int i = 0; i < 1000000; ++i) { resultado += f.x; } return resultado; } void incrementar_y() { for (int i = 0; i < 1000000; ++i) { ++f.y; } } 

En el ejemplo, sumar_x puede necesitar re-leer f.x de la memoria (en lugar de usar la caché) a pesar de no estar escribiendo en dicha variable y a pesar de que las operaciones de incrementar_y no deberían afectar a f.x.

Herramientas

Referencias

Enlaces externos

  • Explicación sobre false sharing
  •   Datos: Q5432732

compartido, falso, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, abril, 2014, estilo, esta, traducción, aún, sido, revisado, terceros, eres, hispanohablante, nativo, participado, esta, traducción, pued. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 11 de abril de 2014 El estilo de esta traduccion aun no ha sido revisado por terceros Si eres hispanohablante nativo y no has participado en esta traduccion puedes colaborar revisando y adaptando el estilo de esta u otras traducciones ya acabadas En ciencias de la computacion el uso compartido falso conocido como false sharing en ingles es un patron de uso que puede reducir el rendimiento de caches distribuidas con coherencia en los bloques de recurso de tamano mas pequeno gestionado por el mecanismo de cache Indice 1 Funcionamiento 2 Ejemplo 3 Herramientas 4 Referencias 5 Enlaces externosFuncionamiento EditarCuando una parte del programa intenta acceder periodicamente a datos que nunca seran alterados pero que comparten bloques de cache con datos que si son alterados el protocolo de cache puede forzar al programa a recargar todo el bloque a pesar de no existir necesidad para ello El sistema de cache no esta al corriente de la actividad de este bloque y fuerza al programa a usar el sistema de cache como si se diera un verdadero uso compartido de un recurso El uso mas comun de este termino es en la cache de procesador en sistemas multiproceso en estos sistemas la memoria se cachea en bloques de pequenas potencias de dos del tamano de la palabra de procesador por ejemplo 64 Bytes contiguos alineados Si dos procesadores operan sobre datos independientes en la misma region de una direccion de memoria los mecanismos de coherencia de cache forzaran esperas en la memoria ademas de perder ancho de banda de procesador El uso compartido falso es inherente a los protocolos de cache sincronizada y puede existir en otros entornos como sistemas de archivos distribuidos o bases de datos Ejemplo Editarstruct foo int x int y foo f La siguientes funciones se ejecutan de manera concurrente int sumar x int resultado 0 for int i 0 i lt 1000000 i resultado f x return resultado void incrementar y for int i 0 i lt 1000000 i f y En el ejemplo sumar x puede necesitar re leer f x de la memoria en lugar de usar la cache a pesar de no estar escribiendo en dicha variable y a pesar de que las operaciones de incrementar y no deberian afectar a f x Herramientas EditarAcumem SlowSpotter y ThreadSpotter herramientas que diagnostican problemas de rendimiento relacionados con cercania de referencias uso de cache e interacciones entre hilos de ejecucion Referencias EditarBolosky W J y Scott M L 1993 Uso compartido falso y sus efectos en el rendimiento de la memoria compartida En el 4º simposio USENIX Symposium en Experiencias con Sistemas Distribuidos y Sistemas Multiproceso San Diego California 22 23 de septiembre de 1993 USENIX Association Berkeley CA 3 3 https software intel com content www us en develop articles avoiding and identifying false sharing among threads htmlEnlaces externos EditarExplicacion sobre false sharing Datos Q5432732Obtenido de https es wikipedia org w index php title Uso compartido falso amp oldid 127498999, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos