[Haskell-cafe] blas bindings, why are they so much slower the C?

Bryan O'Sullivan bos at serpentine.com
Wed Jun 18 11:11:14 EDT 2008


On Tue, Jun 17, 2008 at 9:00 PM, Anatoly Yakovenko
<aeyakovenko at gmail.com> wrote:
> here is the C:
>
> #include <cblas.h>
> #include <stdlib.h>
>
> int main() {
>   int size = 1024;
>   int ii = 0;
>   double* v1 = malloc(sizeof(double) * (size));
>   double* v2 = malloc(sizeof(double) * (size));
>   for(ii = 0; ii < size*size; ++ii) {
>      double _dd = cblas_ddot(0, v1, size, v2, size);
>   }
>   free(v1);
>   free(v2);
> }

Your C compiler sees that you're not using the result of cblas_ddot,
so it doesn't even bother to call it. That loop never gets run. All
your program does at runtime is call malloc and free twice, which is
very fast :-)


More information about the Haskell-Cafe mailing list