Android multi-core

He ejecutado un algoritmo paralelo simple dibujando el conjunto de mandelbrot para probar cálculos paralelos en un Nexus 7 (Tegra 3, 4 + 1 cores). Después de correr varias veces, obtengo 1.5 segundos para la serie y 1.0 para el paralelo, pero el paralelo y la serie se acercan entre sí en 1.3 segundos.

El cuadrado es de 700x700 píxeles, y el código de mandelbrot que utilizo es de

http://rosettacode.org/wiki/Mandelbrot_set#Java

La implementación paralela ejecuta dos mitades de mandelbrot como esta

    public void mandelbrotParallel() {
    Thread t1 = new Thread(new Runnable() {
        public void run() {
            mandelbrotOne();
        }
    });
    Thread t2 = new Thread(new Runnable() {
        public void run() {
            mandelbrotTwo();
        }
    });
    t1.start();
    t2.start();
    try {
        t1.join();
        t2.join();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mHandler.post(new Runnable() {
        public void run() {
            v.setBmp(bmp);
            v.invalidate();
        }
    });
}

He ejecutado una simple suma de vectores anteriormente y he encontrado resultados anecdóticos similares (sin rigor científico). Así que me pregunto si hay algo especial que hacer para que Android active múltiples núcleos para realizar una tarea.

Sobre la base de conversaciones rápidas con Google, podría ser que los núcleos estén inactivos y esperen a que el cálculo sea realmente largo (varios segundos) antes de que se enciendan los núcleos ... ¿Es esto cierto? Si es así, ¿hay llamadas a la API desde Java (no JNI) que se puedan hacer para activar preventivamente los núcleos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta