Mehrkern Android

Ich habe einen einfachen parallelen Algorithmus ausgeführt, der den Mandelbrot-Satz zeichnet, um parallele Berechnungen auf einem Nexus 7 (Tegra 3, 4 + 1-Kerne) zu testen. Nach mehrmaliger Ausführung erhalte ich 1,5 Sekunden für Seriell und 1,0 für Parallel, aber Parallel und Seriell kommen sich mit 1,3 Sekunden sehr nahe.

Das Quadrat ist 700x700 Pixel groß und der von mir verwendete Mandelbrot-Code stammt von

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

Bei der parallelen Implementierung werden zwei Hälften von Mandelbrot wie folgt ausgeführt

    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();
        }
    });
}

Ich habe zuvor eine einfache Vektoraddition durchgeführt und ähnliche anekdotische Ergebnisse gefunden (keine wissenschaftliche Strenge). Ich frage mich also, ob es etwas Besonderes gibt, das man tun muss, damit Android mehrere Kerne startet, um eine Aufgabe zu erledigen.

Basierend auf schnellen Gesprächen mit Google könnte es sein, dass die Kerne inaktiv sind und warten, bis die Berechnung wirklich lange dauert (mehrere Sekunden), bevor die Kerne eingeschaltet werden ... Stimmt das? Wenn ja, gibt es API-Aufrufe von Java (kein JNI), die durchgeführt werden können, um die Kerne präventiv aufzuwecken?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage