ฉันรู้ว่าคำตอบของวิธีแก้ปัญหาที่ค่อนข้างใหม่หายไป หากมีการใช้ Numpy ในรหัสฉันจะแนะนำให้ลอง Pythran:
http://pythran.readthedocs.io/
สำหรับฟังก์ชั่นที่ฉันลอง Pythran ให้ผลลัพธ์ที่ยอดเยี่ยมมาก ฟังก์ชั่นที่ได้นั้นเร็วพอ ๆ กับการเขียนโค้ด Fortran (หรือช้ากว่าเล็กน้อยเท่านั้น) และเร็วกว่าโซลูชัน Cython (ที่ได้รับการปรับให้เหมาะสม)
ข้อดีเมื่อเทียบกับ Cython คือคุณต้องใช้ Pythran ในฟังก์ชั่น Python ที่ปรับให้เหมาะกับ Numpy ซึ่งหมายความว่าคุณไม่จำเป็นต้องขยายลูปและเพิ่มประเภทสำหรับตัวแปรทั้งหมดในลูป Pythran numpy.ndarray
ต้องใช้เวลาในการวิเคราะห์รหัสดังนั้นจึงมีความเข้าใจในการดำเนินงานใน
นอกจากนี้ยังเป็นข้อได้เปรียบอย่างมากเมื่อเทียบกับ Numba หรือโครงการอื่น ๆ จากการรวบรวมแบบทันเวลาซึ่ง (ความรู้ของฉัน) คุณต้องขยายลูปให้มีประสิทธิภาพจริงๆ แล้วโค้ดที่มีการวนซ้ำจะไม่มีประสิทธิภาพมากโดยใช้เพียง CPython และ Numpy ...
ข้อเสียเปรียบของ Pythran: ไม่มีคลาส! แต่เนื่องจากมีเพียงฟังก์ชั่นที่จำเป็นต้องปรับให้เหมาะสมเท่านั้นจึงต้องรวบรวมจึงไม่น่ารำคาญมาก
อีกจุดหนึ่ง: Pythran รองรับ OpenMP parallelism อย่างดี (และง่ายมาก) แต่ฉันไม่คิดว่ารองรับ mpi4py ...