วิธีที่ดีที่สุดในการโต้ตอบกับเซสชัน R ที่ทำงานในคลาวด์


10

ฉันมี R ทำงานบน EC2 Amazon, ใช้รุ่นแก้ไขของBioconductor AMI ขณะนี้ฉันกำลังใช้ putty เพื่อ ssh ในเซิร์ฟเวอร์ของฉันเริ่มต้น R จากบรรทัดคำสั่งแล้วคัดลอกและวางสคริปต์ของฉันจาก notepad ++ ลงในเซสชั่นฉาบของฉัน

สิ่งคือฉันเกลียดการตัดและวาง รู้สึกถึงยุคหินและบางครั้งฉันก็มีปัญหาเรื่องบัฟเฟอร์ที่ทำให้รหัสของฉันผิดพลาด ฉันไม่สามารถใช้RStudioเพราะมันไม่รองรับมัลติคอร์ซึ่งขึ้นอยู่กับฉัน

วิธีที่สง่างามกว่านี้คืออะไร?

/ แก้ไข: ขอบคุณสำหรับคำแนะนำที่ดีทั้งหมด สำหรับตอนนี้ฉันได้เปลี่ยนไปใช้ foreach กับแบ็กเอนด์ doRedis ซึ่งใช้งานได้ดีกับ Mac, PC ของฉันและ amazon ผ่าน RStudio สวิตช์นี้ค่อนข้างง่ายเมื่อฉันเรียนรู้วิธีเขียนฟังก์ชันที่เลียนแบบ "lapply"โดยใช้ "foreach" (นอกจากนี้ doRedis ยอดเยี่ยมมาก!)


2
BTW คำถามดังกล่าวจะเป็นมากในหัวข้อยังไม่ได้สร้างวิทยาศาสตร์ SE


Imo, screen + vimเป็นคอมโบที่ชนะ แต่อาจไม่ดึงดูดทุกคน
Marc Claesen

คำตอบ:


12

ฉันสามารถคิดได้หลายวิธี ฉันทำสิ่งนี้ไปไม่นานและนี่คือวิธีที่ฉันพบว่ามีประโยชน์มากที่สุด:

  1. โหมด Emacs ภูต ssh เข้าสู่อินสแตนซ์ EC2 ด้วยสวิตช์ -X ดังนั้นจึงส่งต่อหน้าต่าง X กลับไปที่เครื่องลบของคุณ การใช้โหมด daemon จะทำให้แน่ใจได้ว่าคุณจะไม่สูญเสียสถานะหากการเชื่อมต่อของคุณหมดเวลาหรือลดลง
  2. แทนที่จะใช้แพคเกจมัลติคอร์ให้ใช้แบ็กเอนด์แบบขนานอื่นกับแพ็คเกจ foreach ด้วยวิธีนี้คุณสามารถใช้ RStudio ซึ่งยอดเยี่ยม Foreach นั้นยอดเยี่ยมเพราะคุณสามารถทดสอบโค้ดของคุณแบบไม่ขนานแล้วสลับไปที่โหมดขนานโดยเพียงแค่เปลี่ยนแบ็กเอนด์ของคุณ (1 หรือ 2 บรรทัดของโค้ด) ฉันแนะนำแบ็กเอนด์ doRedis คุณอยู่ในคลาวด์และอาจทำให้เครื่องจักรหลายเครื่อง!

+1 สำหรับโหมด Emacs Daemon เมื่อไม่นานมานี้ฉันทำ ssh เล็กน้อยและมันก็ดูมีประโยชน์จริงๆ
richiemorrisroe

มีวิธีง่าย ๆ ที่จะเลียนแบบการประยุกต์ใช้ foreach หรือไม่? ฉันเขียนโค้ดจำนวนมากที่ใช้ประโยชน์และฉันชอบแพคเกจมัลติคอร์เพราะฉันสามารถแทนที่ lapply ด้วย mclapply ได้อย่างง่ายดาย มี 'foreachlapply' หรือฉันจะต้องเขียนโค้ดอีกมาก? ขอบคุณ!
Zach

1
ทีนี้doRedisก็ทำได้แค่ทำ Redis อินพุตขนาดใหญ่ไม่ใช่เหตุผลเดียวสำหรับการคำนวณ HPC

13

วิธีที่สะดวกที่สุดคือเพียงติดตั้งเซิร์ฟเวอร์ VNC และสภาพแวดล้อมแบบแสงบางอย่างเช่น XFCE และสร้างเซสชันเสมือนที่คุณสามารถใช้จากที่ใดก็ได้ที่คุณต้องการ ป้อนคำอธิบายรูปภาพที่นี่

สินค้าเพิ่มเติมคือคุณสามารถใช้คลิปบอร์ดท้องถิ่นของคุณในเดสก์ท็อปเสมือนและดูวิธีแปลง R เร็วกว่าการส่งต่อ X11 หรือคัดลอกไฟล์ภาพ

มันต้องใช้ความพยายามในการตั้งค่าทุกอย่างถูกต้อง (X init, ssh tunnel) แต่อินเทอร์เน็ตเต็มไปด้วยบทเรียนเกี่ยวกับวิธีการนั้น


1
ยิ่งไปกว่านั้นคือ NX ซึ่งโดยทั่วไปมีลักษณะการทำงานที่ดีขึ้นมาก
SCW

คุณต้องการที่จะกวดวิชาที่คุณชอบหรือฉันควรจะดูที่ผลการค้นหาคู่บน google?
Zach

3

ฉันไม่รู้ว่า Amazon EC2 ทำงานอย่างไรบางทีโซลูชันที่เรียบง่ายของฉันอาจไม่ทำงาน แต่ปกติฉันใช้ scp หรือ sftp (ผ่าน WinSCP ถ้าฉันใช้ Windows) หรือ git


3

ฉันจะใช้ rsync เพื่อส่งสคริปต์และไฟล์ข้อมูลไปยังเซิร์ฟเวอร์จากนั้น "nohup Rscript myscript.R> output.out &" เพื่อเรียกใช้สิ่งต่าง ๆ และเมื่อเสร็จแล้ว rsync เพื่อดึงผลลัพธ์


2
screenหรือtmuxดีกว่าnohup- พวกเขายังแยกสคริปต์ดังนั้นมันจะไม่ถูกฆ่าโดยการออกจากระบบ แต่อนุญาตให้แนบเซสชันและเริ่มต้นใหม่แม้จากคอมพิวเตอร์ไคลเอนต์อื่น tmuxสามารถใช้เป็นตัวจัดการหน้าต่างโหมดข้อความได้

0

VIM + tmux + VIM Slime คุณได้รับตัวแก้ไขข้อความที่ยิ่งใหญ่ที่สุดและความสามารถในการส่งรหัสจากตัวแก้ไขไปยังบรรทัดคำสั่ง R (เหมือนกับใน Rstudio)


0

ผมใช้ R สตูดิโอบน EC2 ตลอดเวลาขอบคุณที่AMI s ที่สร้างขึ้นโดยหลุยส์ Aslett คุณไม่จำเป็นต้องรู้ SSH หรืออะไร (นอกเหนือจาก R แน่นอน) คุณเพียงแค่ต้องการบัญชี EC2 ดังที่กล่าวไว้ในหนึ่งในคำตอบอื่น ๆ R Studio สนับสนุนการคำนวณแบบขนานผ่านทางแพคเกจforeach สิ่งนี้ทำให้สามารถควบคุมพลังของ EC2 ได้อย่างแท้จริง ด้วยการใช้อินสแตนซ์ที่ปรับปรุงการคำนวณ (32 คอร์) ทำให้ฉันสามารถลดเวลาการฝึกอบรมสำหรับรุ่น ML ของฉันได้อย่างไม่มีค่าใช้จ่าย (เกือบสองสามเหรียญต่อชั่วโมง)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.