ฉันใช้ทั้งสองอย่าง ฉันมักจะมีฟังก์ชั่นต้นแบบและอัลกอริทึมใน Matlab เพราะตามที่ระบุไว้มันง่ายกว่าที่จะแสดงอัลกอริทึมในสิ่งที่ใกล้เคียงกับภาษาคณิตศาสตร์ที่บริสุทธิ์
R มีห้องสมุดที่ยอดเยี่ยม ฉันยังคงเรียนรู้อยู่ แต่ฉันเริ่มทิ้ง Matlab ไว้ในฝุ่นเพราะเมื่อคุณรู้จัก R แล้วมันก็ค่อนข้างง่ายที่จะมีฟังก์ชั่นต้นแบบที่นั่น
อย่างไรก็ตามฉันพบว่าหากคุณต้องการให้อัลกอริทึมทำงานได้อย่างมีประสิทธิภาพภายในสภาพแวดล้อมการใช้งานจริงคุณควรย้ายไปใช้ภาษาที่คอมไพล์เช่น C ++ ฉันมีประสบการณ์ในการห่อ C ++ ทั้งใน Matlab และ R (และ excel สำหรับเรื่องนั้น) แต่ฉันเคยมีประสบการณ์ที่ดีกว่ากับ R. Disclaimer: ในฐานะนักเรียนที่จบฉันไม่ได้ใช้ Matlab รุ่นล่าสุดสำหรับ DLLs ของฉัน ฉันทำงานเกือบเฉพาะใน Matlab 7.1 (ซึ่งเหมือน 4 ปี) อาจเป็นรุ่นที่ใหม่กว่าทำงานได้ดีขึ้น แต่ฉันคิดว่าสองสถานการณ์นอกหัวของฉันที่ C ++ dll ที่ด้านหลังของ Matlab ทำให้ Windows XP เป็นหน้าจอสีน้ำเงินเพราะฉันเดินนอกขอบเขตอาร์เรย์ที่ไม่เหมาะสม - เป็นปัญหาที่ยากมาก แก้ไขปัญหาหากคอมพิวเตอร์ของคุณรีบูตทุกครั้งที่คุณทำผิดพลาดนั่น ...
สุดท้ายชุมชน R ดูเหมือนจะเติบโตเร็วกว่ามากและมีแรงผลักดันมากกว่าชุมชน Matlab ที่เคยมีมา เพิ่มเติมได้ฟรีคุณยังไม่ได้จัดการกับ Godforsaken flexlm manager manager
หมายเหตุ: การพัฒนาของฉันเกือบทั้งหมดอยู่ในอัลกอริทึม MCMC ในขณะนี้ ฉันทำประมาณ 90% ในการผลิตใน C ++ ด้วยการสร้างภาพใน R โดยใช้ ggplot2
อัปเดตสำหรับความคิดเห็นแบบขนาน:
จำนวนเวลาที่ใช้ในการพัฒนาของฉันตอนนี้ถูกใช้ไปกับการทำ MCMC แบบขนาน (เป็นวิทยานิพนธ์เอกของฉัน) ฉันได้ใช้กล่องเครื่องมือแบบขนานของ Matlab และโซลูชันของ Star P (ซึ่งตอนนี้ฉันเดาว่าเป็นของMicrosoft ?? - jeez อีกอันถูกกลืน ... ) ฉันพบกล่องเครื่องมือแบบขนานนั้นเป็นฝันร้ายของการกำหนดค่า- เมื่อฉันใช้มัน จำเป็นต้องเข้าถึงรูทไปยังโหนดไคลเอ็นต์ทุกโหนด ฉันคิดว่าพวกเขาได้แก้ไขข้อผิดพลาดเล็ก ๆ น้อย ๆ ตอนนี้ แต่ยังคงเป็นระเบียบ ฉันพบวิธีแก้ปัญหา * ที่จะสวย แต่มักจะยากที่จะโปรไฟล์ ฉันไม่ได้ใช้แจ็คเก็ตแต่ฉันได้ยินสิ่งที่ดี ฉันยังไม่ได้ใช้กล่องเครื่องมือแบบขนานรุ่นล่าสุดที่รองรับการคำนวณ GPU อีกด้วย
ฉันแทบไม่มีประสบการณ์กับแพ็คเกจ R ขนาน
เป็นประสบการณ์ของฉันที่โค้ดขนานจะต้องเกิดขึ้นในระดับ C ++ ที่คุณมีการควบคุมอย่างละเอียดยิ่งขึ้นสำหรับการแยกย่อยงานและการจัดสรรหน่วยความจำ / ทรัพยากร ฉันพบว่าหากคุณพยายามที่จะทำให้ขนานโปรแกรมในระดับสูงคุณมักจะได้รับการเร่งความเร็วน้อยที่สุดเว้นแต่ว่ารหัสของคุณจะย่อยสลายเล็กน้อย (หรือเรียกว่าดัมมี่ - ขนาน) ที่กล่าวว่าคุณสามารถรับความเร็วที่เหมาะสมโดยใช้บรรทัดเดียวที่ระดับ C ++ โดยใช้ OpenMP:
#pragma omp parallel for
แผนการที่ซับซ้อนมากขึ้นมีช่วงการเรียนรู้ แต่ฉันชอบสิ่งที่ gpgpu กำลังเกิดขึ้น ในฐานะของ JSM ในปีนี้มีเพียงไม่กี่คนที่ฉันได้พูดคุยเกี่ยวกับการพัฒนา GPU ใน R อ้างว่าเป็นเพียง "นิ้วเท้าที่อยู่ลึกที่สุด" เพื่อพูด แต่ตามที่ระบุไว้ฉันมีประสบการณ์น้อยที่สุด - การเปลี่ยนแปลงในอนาคตอันใกล้