Ejecutar eficientemente aplicaciones sobre arquitecturas paralelas requiere desarrollar programas concurrentes. Los errores que pueden aparecer en estos programas son de los más difíciles de detectar, debido a la aleatoridad en el orden de ejecución de los procesos. La mayoría de los trabajos sobre detección de estos errores se basan en la instrumentación del programa, lo que introduce un elevado overhead. Para mejorar la eficiencia del proceso de monitorización, algunos autores proponen extensiones de hardware que realizan la tarea, con lo que consiguen reducir sustancialmente el overhead. Sin embargo, resulta inviable su aplicación en entornos de producción debido a que no se cuenta en la actualidad con esa tecnología. Este trabajo propone una alternativa de optimización a este enfoque a través del uso de los contadores de hardware que sí están disponibles en los procesadores actuales. Se presenta un análisis de la propuesta utilizando un algoritmo de multiplicación de matrices paralelo.