PDA

Επιστροφή στο Forum : H Valve παρουσιάζει ένα σύνολο εργαλείων για multithreaded παιχνίδια



devnull
07-11-06, 13:53
H Valve (http://www.valvesoftware.com/), η εταίρεια πίσω από σημαντικούς τίτλους παιχνιδιών όπως το Half Life, ανακοίνωσε σε ένα event ότι έχει ολοκληρώσει την ανάπτυξη ενός συνόλου εργαλείων που θα της επιτρέψουν την δημιουργία multithreaded παιχνιδιών, ώστε να εκμεταλλευτεί τις δυνατότητες που προσφέρουν οι σύγχρονοι multi-core επεξεργαστές στα PC και τις κονσόλες νέας γενιάς.

Στην παρουσίαση της, η Valve έκανε λόγο για την ανάπτυξη εργαλείων που επιτρέπουν έναν συνδυασμό των δύο βασικών προσεγγίσεων στον multithreaded προγραμματισμό για παιχνίδια. Η πρώτη βασική προσέγγιση με τον χαρακτηρισμό coarse multithreading (ας το μεταφράσουμε αδρό ή "χοντροκομμένο" multithreading) αφορά τον προσδιορισμό μιας μικρής σειράς από βασικές λειτουργίες που θα μπορούσαν να εκτελεστούν παράλληλα. Για παράδειγμα, η σχεδίαση μιας σκηνής, ο ήχος ή η τεχνητή νοημοσύνη θα μπορούσαν να είναι ένα thread εκτέλεσης το καθένα. Αυτή είναι μια τεχνική που ήδη εφαρμόζεται σε μια σειρά από τίτλους παιχνιδιών που κυκλοφορούν ή αναμένεται να κυκλοφορήσουν στο άμεσο μέλλον.

Η δεύτερη τεχνική, με το όνομα fine-grain multithreading (ας το μεταφράσουμε λεπτομερές ή "λεπτοκομμένο" multithreading) προσεγγίζει το θέμα του παραλληλισμού σε πολύ πιο λεπτομερές επίπεδο. Για παράδειγμα, ένα thread εκτέλεσης μπορεί να αφορά την κίνηση και λειτουργία κάθε χαρακτήρα στην οθόνη.

Το πρόβλημα με την πρώτη προσέγγιση, σύμφωνα με την Valve, είναι ότι τα διαφορετικά threads στα οποία μπορεί να χωριστεί η εκτέλεση ενός παιχνιδιού έχουν πολύ διαφορετικές απαιτήσεις. Έτσι αν ανατεθεί η επεξεργασία του ήχου σε ένα thread και αυτό ανατεθεί σε έναν πυρήνα μπορεί πολύ εύκολα αυτός να αφήνει 80% των resources του ελεύθερο και ανεκμετάλλευτο. Από την άλλη, η fine-grain multithreading τεχνική μπορεί να καταστήσει εξαιρετικά δύσκολο τον συγχρονισμό και το debugging ενώ κατά την εκτέλεση δημιουργείται σημαντικό πρόβλημα με τις προσπελάσεις της μνήμης, που μπορεί να οδηγήσει σε πολύ χαμηλή απόδοση.

H Valve υιοθετεί μια ενδιάμεση λύση που κάνει χρήση και των δύο τεχνικών, μαζί με κάποιες βελτιστοποιήσεις ώστε να πετύχει μεγαλύτερη απόδοση. Ουσιαστικά, χρησιμοποιώντας coarse multithreading χωρίζει την επεξεργασία σε μια σειρά από βασικά νήματα εκτέλεσης, ενώ διάφορα στοιχεία που έχουν σημαντικές απαιτήσεις και μπορούν να παραλληλοποιηθούν (όπως για παράδειγμα οι υπολογισμοί για το ποια εντικείμενα είναι ορατά στον χρήστη) γίνονται fine-grained multithreaded. Επιπλέον, στην περίπτωση που υπάρχουν ελεύθεροι πόροι στο σύστημα, γίνονται μια σειρά από προϋπολογισμούς που θα χρειαστούν στο παιχνίδι σε κάποιο μελλοντικό σημείο (π.χ. κάποιοι υπολογισμοί τεχνητής νοημοσύνης ή εύρεσης μονοπατιών).

Η υιοθέτηση αυτού του multithreaded μοντέλου ανάπτυξης, αλλάζει ουσιαστικά και το βασικό flow με το οποίο κατασκευάζεται ένα παιχνίδι και για αυτό η Valve δεν το έχει ενσωματώσει ακόμα σε κάποιον από τους τίτλους της. Παρόλα αυτά, η εταιρεία αναμένει να αρχίσει να διαθέτει κάποια δείγματα ή βελτιώσεις σε παιχνίδια μέσω της υπηρεσίας της Steam (http://steampowered.com/v/index.php). Σύμφωνα με την εταιρεία, πάντως, τα πρώτα δείγματα γραφής της νέας τεχνολογίας αποδίδουν εξαιρετικά και κάνει λόγο για αύξηση έως και 3.2x σε έναν quad-core επεξεργαστή όπως ο Kentsfield.


Πηγή : http://arstechnica.com/articles/paedia/cpu/valve-multicore.ars

Erebos
07-11-06, 18:32
Βρήκα ένα πιο εκτενές άρθρο για την multithreaded έκδοση της Source engine.
Multi-core in the Source Engine @ bit-tech.net (http://www.bit-tech.net/gaming/2006/11/02/Multi_core_in_the_Source_Engin/1.html)

@ ADSLgr.com All rights reserved.