Tag: C

ทดลองใช้ C# กับงานวิจัย

ปกติผมจะใช้ Mathematica เป็นหลักในการทำงานโดยมากจะเป็นพวกแบบจำลองคณิตศาสตร์ที่ตองการเห็นว่าผลลัพธ์จะเปลี่ยนแปลงไปอย่างไรถ้าตัวแปรที่สนใจบางตัวมีการเปลี่ยนแปลง เพิ่มขึ้นหรือลดลง ซึ่งแน่นอนผมใช้พวกคำสั่ง Manipulate หรือ Dynamic เป็นหลัก แต่มาระยะหลังนี้เริ่มมีการใช้ R ในที่ทำงานกันเยอะ ผมเลยเขียนโมเดลของงานที่ทำใน R ไปพอสมควร แต่มันก็ติดปัญหาว่ามันช้ามากกับหลายโมเดลที่ทำอยู่ถึงแม้จะหันไปใช้ Rcpp แต่ก็รู้สึกว่าเสียเวลาเขียน wrapper functions ห่อพวกมันอีกทีใน R แถมเวลาส่งงานให้ Prof ทั้งหลายก็ติดเรื่อง compiler อีก แถมต้องมาเขียน shiny อีกดูวุ่นวายไปหมด สุดท้ายกลับมาตายรังที่ Mathematica เหมือนเดิม เขียนโมเดลเสร็จ อยากจะส่งให้ชาวบ้านดูก็ใช้เพียงแค่คำสั่ง Deploy ไปบนcloud เท่านั้นจบเลย …แต่มันก็แลกมาด้วยค่าใช้จ่ายพอสมควร ผมเลยหาทางเลือกอื่นๆที่มันประหยัดกับบางงานกับโมเดลที่ไม่ดูซับซ้อนและใช้เวลาทำไม่นาน หันซ้ายหันขวาก็มาจบที่ C# หลังจากดูแล้วก็มี library ที่พอช่วยงานได้อย่าง math.net แถม UI ก็ทำง่ายเพียงลากแปะเท่านั้น เลยทดลองใช้ดู ผลปรากฏว่าเป็นที่น่าพอใจ  ถึงจะดูยุ่งยากในส่วน UI แต่ก็รู้สึกว่าไม่ได้เลวร้ายอะไร ส่งงานก็ง่ายแถมก็ไม่ต้องติดตั้งอะไรให้ดูวุ่นวาย

ใช้งาน mono+rdotnet บน Rocks cluster

ตัวอย่างการใช้งาน mono + Rdotnet บนระบบ Rocks cluster ครับ เวอร์ชั่น Rocks cluster ที่ผมใช้คือ 6.2 ครับ การติดตั้งก็แบบเดิมๆเลยตามที่อธิบายในเอกสารบนเวบของ Rocks เลย ไม่มีอะไรพิเศษ จากนั้นก็ผมก็ yum ติดตั้ง mono จาก https://copr.fedorainfracloud.org/coprs/tpokorra/mono-opt/  โดยในเวอร์ชั่นนี้ mono จะถูกติดตั้งไว้ที่ /opt/mono และก็ yum ติดตั้ง R ซึ่ง R จะถูกติดตั้งไว้ที่ /usr/lib64/R ของ head node ครับ หลังจากที่ติดตั้ง mono และ R เรียบร้อยแล้วก็เอา code ของ C# ที่เขียนสำหรับเรียกใช้งาน rdotnet บวกกับก็อปปี้ไฟล์แอสเซมบลีของ Rdotnet ต่างๆมาไว้ใน folder ที่ต้องการก่อนทำการคอมไพล์ครับ