We are in an era of computing where optimization to increase performance on a single processor his slowly hitting the wall. We started to see new processing platforms with many processor cores tightly integrated for parallel processing. The problem is that very few programmers know how to program these multicore systems. people are predicting that parallel programming skills are very important and will increasingly become important and valuable. My company started investing in equipping programmers with the right tools and concepts of parallel programming.
Is everybody wrong? is there a way of hiding concurrency from the programmer? At least that is the first impression that I got from reading the paper. Their goal was to hide the complexity of programming multiple threads and cores from the game developers, allowing them to see the system as a single threaded machine. This made me very excited about the paper until I read the section about performance and latency.
For their approach of hiding concurrency from the developer to work, they do not keep significant data in main memory. One of the major design decision here is to store the data persistently. This is will have a major impact on the response time and performance of the system.
So I see a couple of contradictions in the paper and I am not sure if I will classify it as a "beautiful architecture"
If latency is of big concern for games as mentioned in the paper, why will the author architect a system knowing that it will suffers from latency problems?
Parallelism should be a way of improving performance. If the goal is to make it simple for the developer, we should have significant performance benchmarks to make sure the solution does not take away the advantage of parallelism.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment