För att svara lite längre - det känns som om det är lite fel fråga, eller i alla fall underspecat på något vis.
Det absolut viktigaste, viktigare än programmeringsspråket, är nog algoritmen och dess egenskaper. Hur stort datamängd ska du beräkna över? Är det saker som ryms i cache eller i RAM eller måste du ned på disk i varje varv? Hur parallell kan du göra algoritmen, och hur mycket kommer en process eller en tråd att behöva interagera med resultatet av en annan tråd eller process? Svaren på detta kommer styra lite vad som är rätt hårdvara och om du kan köra med separata processer eller om du vill ha trådar som kan dela minnesutrymme.
Python i sig har ju ett klassiskt problem med "Global Interpreter Lock" som gör att det inte ensamt med sin egen trådmodell har varit det klassiska sättet att lösa problem som är "CPU-bound", i alla fall inte parallellt. Där jag har varit med har det lösts genom att ha ett Python-program som styr en massivt parallell beräkningskod skriven i C++.
Att programmera för grafikkort med sin massivt parallella modell är annorlunda än att programmera "som vanligt". Inte omöjligt, men lite annat tankesätt. Det kommer inte av sig själv i något språk.
Samtidigt finns det ju fler och fler beräkningsmoduler som är färdiga att anropa från Python, och om du kan avända någon av dem så förkortar du ju utvecklingstiden radiaklt.
Operativsystemsvalet kommer nästan sist i listan, även som saker som t.ex. hastighet på filläsning och liknande kan påverka. I de flesta fall är ju 99,9% av beräkningskoden lätt att flytta och några timmars arbetstid är ju oftast dyrare än hårdvaran i alla fall.
Och i min erfarenhet - oavsett modell så kan du enkelt göra småfixar eller misstag som gör din kod som sirap eller som tiodubblar hastigheten. I ett av de där C++-hacken jag snackade om ovan var det en utvecklare som körde en profiler på en kodsnutt av ren nyfikenhet, såg att en datastruktur inte rymdes i cachen och efter fix av det tredubblades prestandan i den viktigaste delen av koden. Eller som i GIL som jag nämnde ovan, att en process eller tråd väntar på en annan i onödan. Så underskatta inte kvaliteten på programmeraren och hennes erfarenhet.