With much of our increasing processing power coming from multiprocessing, it
seems to be a good idea to make FlightGear fully multithreading-capable.
However, I have not found any one thread of discussion about this.

We have been going through a major change in the graphics system, namely the
change from OpenGL to Open Scene Graph. Since we have accomplished (most of)
this change, I believe we can do other major rewrites, such as is needed for
multiprocessing support.

There are many ways we could design FlightGear with multiprocessing support.
Thus, there needs to be a discussion as to how to do it best.

Personally, I think we should continue the separation of the "loading"
thread we already have separated (I recall it helped reduce multiplayer lag)
by delegating all tasks likely to block to separate threads (if we haven't
already done so with the loading thread.) We can then have one "compute"
thread for each processing core.

Within the compute threads, I think we could cooperatively schedule the
various subsystems. Some subsystems, namely graphics, may have
multiprocessing support built in and can be run by multiple threads at once
(eventually this could become all the subsystems.)

However, there are other ways. The last two paragraphs are my thoughts on
it, but I do not understand the code well. There are other options, such as
using the OS to schedule them for us (that seems it might be a little
OS-specific, requiring several implementations of varying performance.)

I hope we can come up with some way to do this that everyone is happy with,
and implement the change in the near future.

Any thoughts appreciated,
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
Flightgear-devel mailing list

Reply via email to