עבודה עם ליבות
שלום לכולם,
אני מתכנת ב-C++ בסביבת CVI לצורכי מחקר אקדמי.
לאחרונה מישהו הסביר לי מעט על חישובים באמצעות ליבות, שאפשר למשל בלולאת for שרצה עד 2000, לנצל 4 ליבות במקביל כך שכל אחת עובדת בקפיצות של 500.
יש לי שתי שאלות שלא בהכרח רלוונטיות ל-++C אלא באופן כללי מתוך סקרנות גדולה:
1. האם חישובים אלו מהירים יותר מחישוב טורי רגיל (ריצה רגילה מ-1 עד 2000)? איך? כמה ליבות עובדות בחישוב טורי שכזה?
2. האם ניתן לתכנת למשל ארבעה דברים שונים לחלוטין (נניח 4 לולאות for שונות) שיעבדו במקביל כך שכל ליבה עובדת על לולאה אחרת ואיכשהו לסנכרן בינהם? אם כן, האם תכנות מסוג זה יכול להיות יעיל? ואיך עושים את זה?
תודה רבה לעונים!
שלום לכולם,
אני מתכנת ב-C++ בסביבת CVI לצורכי מחקר אקדמי.
לאחרונה מישהו הסביר לי מעט על חישובים באמצעות ליבות, שאפשר למשל בלולאת for שרצה עד 2000, לנצל 4 ליבות במקביל כך שכל אחת עובדת בקפיצות של 500.
יש לי שתי שאלות שלא בהכרח רלוונטיות ל-++C אלא באופן כללי מתוך סקרנות גדולה:
1. האם חישובים אלו מהירים יותר מחישוב טורי רגיל (ריצה רגילה מ-1 עד 2000)? איך? כמה ליבות עובדות בחישוב טורי שכזה?
2. האם ניתן לתכנת למשל ארבעה דברים שונים לחלוטין (נניח 4 לולאות for שונות) שיעבדו במקביל כך שכל ליבה עובדת על לולאה אחרת ואיכשהו לסנכרן בינהם? אם כן, האם תכנות מסוג זה יכול להיות יעיל? ואיך עושים את זה?
תודה רבה לעונים!