Heterogena multi-core processorer, såsom IBM Cell processor, kan leverera hög prestanda. Dessa processorer är dock notoriskt svåra att programmera: olika kärnor stöder olika instruktionsuppsättningar arkitekturer, och processorn som helhet ger inte samstämmighet mellan de olika kärnornas lokala minnen. Vi presenterar Hera-JVM, en implementering av Java Virtual Machine som fungerar över cellprocessorn, vilket gör dessa plattformar mer lättillgängliga för vanliga utvecklare. Hera-JVM stöder hela Java-språket; trådar från ett omodifierat Java-program kan utföras samtidigt på både den huvudsakliga PowerPC-baserade kärnan och på de ytterligare SPE-acceleratorkärnorna. Migrering av trådar mellan dessa kärnor är transparent ur applikationens synvinkel, vilket inte kräver någon ändring av Java källkod eller bytekod. Hera-JVM stöder den befintliga Java Memory Model, även om den underliggande hårdvaran inte ger cachekonsistens mellan de olika kärntyperna. Vi undersöker Hera-JVM:s resultat under en rad verkliga Java-riktmärken från SpecJVM, Java Grande och Dacapo-riktmärkessviter. Dessa riktmärken visar en stor variation i relativ prestanda på de olika kärntyperna av cellprocessorn, beroende på vilken typ av arbetsbelastning de har. Utförande av dessa riktmärken på Hera-JVM kan uppnå hastighetshöjningar på upp till 2,25x genom att använda en av Cellprocessorns SPE-acceleratorkärnor, jämfört med utförande på den huvudsakliga PowerPC-baserade kärnan. När alla sex SPE-kärnor utnyttjas kan parallella arbetsbelastningar öka upp till 13x jämfört med genomförandet på den enda PowerPC-kärnan.
Såvitt vi vet är den enda JVM som implementerar Java-minnesmodellen på en icke-cachesammanhängande arkitektur Hera-JVM REF.
Hera-JVM: a runtime system for heterogeneous multi-core architectures
{'venue': 'OOPSLA', 'journal': None, 'mag_field_of_study': ['Computer Science']}