ซอฟต์แวร์เดสก์ท็อปที่มีทรัพยากร HPC สำหรับการบีบอัดหมายเลขท้ายหลัง


17

เวิร์กกรุ๊ปของเราผลิตแอปพลิเคชันเดสก์ท็อปที่จำลองการสร้างประสิทธิภาพการใช้พลังงาน มันเป็นแอปพลิเคชั่น. NET และเมื่อผู้ใช้เรียกใช้การจำลองจำนวนมากพวกเขาอาจต้องใช้เวลาค่อนข้างนาน การจำลองมีความสามารถในการขนานกันโดยสิ้นเชิงและเรามีทรัพยากรการคำนวณHPC ที่สำคัญมากที่ "สำนักงาน"

แนวคิดหนึ่งที่เรามีคือการอนุญาตให้ผู้ใช้ออฟโหลดการจำลองที่เรารู้ว่าจะใช้เวลานานมาก (ในขณะที่การจำลองแต่ละตัวทำงานประมาณ 30-120 วินาทีการรันการจำลองจำนวนมากอาจใช้เวลาหลายวัน) มีใครทำแบบนี้มาก่อนหรือไม่ ถ้าเป็นเช่นนั้นคุณใช้ห้องสมุดใด ๆ เพื่อทำให้งานง่ายขึ้นหรือไม่? มันคุ้มค่ากับความพยายามหรือไม่?

แก้ไขเพื่อเพิ่ม:

แต่ละงานสำหรับการถ่ายจำลองจะเป็น

  • บรรจุไฟล์ (ประมาณ 5Mb)
  • อัปโหลดไปยังเซิร์ฟเวอร์ของเรา
  • การย่อยสลายแพคเกจเป็นแบบจำลองส่วนบุคคล (แต่ละครั้งใช้เวลาประมาณ 30-120 วินาทีและขนานกันโดยสิ้นเชิง) จำนวนของแบบจำลองเป็นฟังก์ชั่นของจำนวนตัวเลือกที่เลือกโดยผู้ใช้ (ฉนวนกันความร้อนการวางแนวอาคาร ฯลฯ ) และกรณีที่เลวร้ายที่สุดในการเลือก ทุกตัวเลือกที่เป็นไปได้จะส่งผลให้เกิดการจำลอง 1E50 ไม่รู้จักการเรียกใช้การจำลอง 100 ถึง ~ 1E5 แต่ผู้ใช้ส่วนใหญ่จะทำงานน้อยกว่า 10
  • ประกอบชิ้นส่วนจำลองที่เสร็จสมบูรณ์แล้วและดาวน์โหลดไฟล์ที่มีขนาดใหญ่ขึ้นในขณะนี้

เราไม่แน่ใจว่าอินเทอร์เฟซใดที่จะใช้เนื่องจากกลุ่มของเรายังใหม่กับสิ่งนี้และด้วยการลดงบประมาณมันอาจจะเสร็จสมบูรณ์ในเวลา แต่ต้องง่ายต่อการดูแลรักษาคนต่อไป (ถ้ามี)

แอพนี้ใช้. NET 4 อยู่แล้วและสามารถขยายเพื่อใช้คอร์ทั้งหมดที่ผู้ใช้มี (เครื่อง dev ของเรามี 8 คอร์)


ฉันไม่ชัดเจนว่าคุณจะทำอะไรที่นี่ - จุดสิ้นสุด HPC จะอยู่บนเซิร์ฟเวอร์ของคุณหรือเซิร์ฟเวอร์เฉพาะอื่น ๆ เสมอหรือไม่ (ถ้าเป็นเช่นนั้นที่ควรจะทำให้มันง่ายมากเพราะคุณอาจจะไม่สามารถที่จะทำฝั่งเซิร์ฟเวอร์มากขึ้น.)
Aesin

@Aesin ปลาย HPC จะอยู่ในเซิร์ฟเวอร์ของเราใช่ แอพที่มีอยู่และเวอร์ชั่นใหม่รันการจำลองบนเดสก์ท็อปของผู้ใช้ ฉันกำลังมองหาคำแนะนำ / คำแนะนำเกี่ยวกับวิธีคิดล่วงหน้าเวอร์ชันถัดไปเพื่อให้สามารถใช้ HPC สำหรับผู้ใช้ที่ใหญ่กว่า
Tangurena

คำตอบ:


10

คุณอาจพิจารณาใช้แร้ง: http://research.cs.wisc.edu/condor/ มันอาจเกินความจำเป็นทั้งนี้ขึ้นอยู่กับประเภททรัพยากร HPC ที่คุณกำลังพูดถึงและจะเปลี่ยนไปมากน้อยเพียงใด อย่างไรก็ตามมันค่อนข้างง่ายในการเริ่มต้นและดูแลการเปิดงานอิสระการยอมรับข้อบกพร่องโหลดบาลานซ์และอื่น ๆ

มันจะมีประโยชน์มากขึ้นถ้าคุณมีความเฉพาะเจาะจงมากขึ้นเกี่ยวกับงานแต่ละงาน (นานเท่าไหร่, แบบอะซิงโครนัส) และอินเทอร์เฟซใดที่คุณจะใช้สำหรับการโต้ตอบ (กระบวนการเรียกใช้, ห้องสมุด ฯลฯ )

ด้าน


ฉันไม่แน่ใจว่า condor จะทำงานกับ. net (Windows ได้หรือไม่) แต่กลุ่มงานของเราใช้ condor บน Linux และฉันสามารถแนะนำให้ส่งงาน +1
Sebastian

Condor สามารถสื่อสารผ่านระบบไฟล์ได้ดังนั้นจึงไม่จำเป็นต้องทำตาม. NET มันทำงานบน Windows
Matt Knepley

5

หากคุณอยู่ในโลกของ. NET คุณได้ดูการสนับสนุนหลายเธรดใน. NET 4 หรือไม่ และคุณลักษณะแบบอะซิงโครนัสที่เพิ่มเข้าไปใน. NET 4.5?

การมัลติเธรดไม่ได้ช่วยให้คุณลดการประมวลผลไปยังเครื่องอื่น ๆ แต่มันจะช่วยให้คุณใช้พีซีแบบมัลติคอร์ที่เราทุกคนใช้อยู่ในปัจจุบัน 4.0 มีคุณสมบัติที่ดีในเรื่องนี้

4.5 ปัจจุบันอยู่ในหน้าตัวอย่างเทคโนโลยี - ดังนั้นจึงคุ้มค่าที่จะดูว่าจะช่วยได้หรือไม่ มีบทความใน MSDN ที่แนะนำคุณลักษณะใหม่แบบอะซิงโครนัสในเดือนที่แล้ว (ตุลาคมหรือพฤศจิกายนและไม่เร็วกว่าวันที่กันยายน) ดูเหมือนว่าฟีเจอร์เหล่านี้จะถูกส่งเป็นวิธีการขนานรหัสแบบขนานน้อยกว่าเดิม แต่ IIRC นั้นยังรวมถึงการรองรับเซิร์ฟเวอร์หลายตัวด้วย


4

คำตอบขึ้นอยู่กับสิ่งที่คุณมีในฐานะแบ็กเอนด์ HPC คำถามหมายถึงทรัพยากรที่มีอยู่ให้กับผู้ใช้ NREL มีคลัสเตอร์ Linux และคลัสเตอร์ Windows ที่ใช้ Windows Compute Cluster Server

  1. ในการใช้งาน linux cluster ผู้เขียนต้องแน่ใจว่ารูทีนการจำลองรันบน Mono (การใช้งาน. NET platform สำหรับ linux) และตรวจสอบให้แน่ใจว่าติดตั้ง Mono บนโหนดแล้ว

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

    ฉันไม่แน่ใจว่าระบบไฟล์นั้นพร้อมใช้งานสำหรับผู้ใช้ NREL หรือไม่ดังนั้นการคัดลอกบางรายการจะเกี่ยวข้อง สิ่งนี้ทำให้สิ่งที่ซับซ้อนอยู่แล้ว

  3. ถัดไปแอปพลิเคชันควรจะสามารถรวบรวมสคริปต์รายละเอียดงานส่งไปยังกลุ่มที่เกี่ยวข้องและสอบถามระบบการจัดคิวสำหรับสถานะของการจำลองจนกว่างานจะออกจากคิว

  4. ในที่สุดแอปพลิเคชันควรสามารถดึงผลลัพธ์ได้

ทั้งหมดนี้ทำได้แม้ว่าจะไม่น่ารำคาญและจะมีความเฉพาะเจาะจงในการตั้งค่าของแล็บนี้โดยเฉพาะ

แอพพลิเคชั่นเชิงพาณิชย์จาก Ansys หรือ MSC ช่วยให้ผู้ใช้บันทึกรายละเอียดของงานจำลองที่สามารถเรียกใช้ในโหมดแบทช์ในคลัสเตอร์ระยะไกลได้ในภายหลัง

วิธีแก้ปัญหาทั่วไปที่มากกว่านั้นก็คือการใช้โครงสร้างพื้นฐานแบบกริดถ้ามี

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

มีการใช้กันอย่างแพร่หลายเช่นในการคำนวณทางชีววิทยาซึ่งเครื่องมือที่ใช้ในการเขียนเวิร์กโฟลว์การจำลองประกอบด้วยคำขอบริการเว็บสำหรับการประมวลผลทั้งหมด

เพียงเพื่อให้ทราบว่าการคำนวณการถ่ายโอนไปยังทรัพยากรคอมพิวเตอร์ระยะไกลมักใช้ในแอปพลิเคชันเช่นการรู้จำเสียงของ Google สำหรับ Android

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