PDA

View Full Version : 64bit/multithread support for BoB?



249th_Harrier
03-07-2005, 09:37 AM
The rig I plan to build next year will use one of the multiprocessor 64 bit designs from AMD or Intel. Will BoB support multiple threads? Will it use 64 bit code? I guess if the OS and graphics drivers support 64 bit, then I can still see a benefit, but it would be nice to have the software take advantage of this feature.

Out of curiosity, does anyone know if combat flight sims are an application that can take advantage of 64 bit and/or multiple threads? It is my understanding that preliminary tests using 64 bit Linux (database benchmarks mostly) show that 64 bit gives you a big increase in performance.

NerdConnected
03-08-2005, 03:37 AM
<BLOCKQUOTE class="ip-ubbcode-quote"><font size="-1">quote:</font><HR>Originally posted by 249th_Harrier:
The rig I plan to build next year will use one of the multiprocessor 64 bit designs from AMD or Intel. Will BoB support multiple threads? Will it use 64 bit code? I guess if the OS and graphics drivers support 64 bit, then I can still see a benefit, but it would be nice to have the software take advantage of this feature.

Out of curiosity, does anyone know if combat flight sims are an application that can take advantage of 64 bit and/or multiple threads? It is my understanding that preliminary tests using 64 bit Linux (database benchmarks mostly) show that 64 bit gives you a big increase in performance. <HR></BLOCKQUOTE>

249th_Harrier,

I think it's safe to say that BOB will support 64 if it's released in 2006 ;-) BOB is a high-end simulation so it's very likely Maddox choose that path ;-) Intel and AMD both have 64 processors and XP64 is to be released next month, so that will give them enough time to program ;-)

There's more than multi threading; big speed improvements have been made using e.q. SSE(2).

I think il2 is already using multiple threads; just check the program manager in xp.

I've seen chess programs and mp3 encoder (lame) that work 30% - 50% faster in 64. However, a test with gcc4.0 (heise's CT) with 32 bits programs showed that similar speed improvements were also obtained by using the correct compiler flags...

Mark

ku101-Shrike
03-08-2005, 07:10 AM
Hardware threading and software threading are two completely separate topics, software threads reside in the same program, xp program manager doesnt show what these threads are doing, they only show the hardware threads which is what the newer cpu's are handling in better ways now. C++ has always had multithreading capability, its just the way .NET framework handles it that it has become a talked about topic lately.

with regards 64bit, its simply more and faster memory addressing, where we before could handle up to 4GB Ram, 64bit i read somwhere will allow for thousands of terrabites of ram, MS are limiting theyre servers to 230 terrabytes.

stubby
03-08-2005, 09:21 AM
Do you mean hyperthreading? Hyperthreading is a two fold process where there's hardware that can run multiple CPUs (Sun Workstations) and then there's the software (Sun Solaris or Unix) that utilizes or allows applications to code for the multi-processor environment. For example, I work with Oracle RDBMS which runs on Sun Enterprise Servers working off of Solaris. The combination of these layers allows me to utiliize 24 3.2 Ghrtz CPUs with 40 Gig of Ram in order to optimize I/O in a transaction oriented environment. Software (Oracle) allows a wide range of methods for exploiting all the processors for all their worth. As far as I know, the next Windows OS (after XP) will be 64bit but not hyperthreaded. As a result, a single processor even at 64bit will never be able to come close to workstations running with two, four, eight, etc.. CPUs.

249th_Harrier
03-08-2005, 09:53 AM
Stubby, obviously your knowledge in this area exceeds mine. My understanding is that you can see benefit from multiple CPUs if:
1) You are running multiple simultaneous applications (like IL2 and TS)
or
2) The application you are running can split work up into multiple jobs, so that they can be run simultaneously on separate CPUs.

The reason I ask about the design of BoB is simple. Intel (and AMD) has decided to add 64 bit and multiple processors to their roadmap, since they have hit a wall with processor speed. If BoB can only use a single thread, then it won't really run any faster on next years CPU than on the current ones.

PE_Tigar
03-08-2005, 10:30 AM
@Shrike--not that simple. 64 bits also means 64-bit instructions, e.g. instead of 32-bit instruction per CPU cycle one 64-bit instruction per CPU cycle. As a consequence, 64-bit CPU can do a more complicated operation per CPU cycle. That can bring a significant performance gain.

As for multithreading--as much as I understood from one of the sukhoi.ru threads, Oleg said that Il-2 is using it even now. It would be interesting to have a test of FB/PF on a multiprocessor setup and see if there's gain or not.

And the answer to the original poster's question is also on sukhoi.ru--as far as I understand, Oleg said that BoB will use all of these possibilities provided that they're mainstream at the time. It would be good if CrazyIvan or anyone else whose Russian is better than mine translate that and post it over here. I'm also interested in PPU use--if it took over all FM calculations it would improve performance immensely (even PF would benefit from that, and we could get the new FM in PF too).

stubby
03-08-2005, 10:42 AM
Heya 249th_Harrier,

I was mistaken about Windows ability to truly multi-task vs rapid switching between applications running in memory. Thanks for schooling me http://forums.ubi.com/groupee_common/emoticons/icon_smile.gif Traditionally, windows only had the ability to appear to multi-task but with Pentiums new technology, they are actually hyperthreading. The new Pentiums coming out will have two cores on the same chip sharing a single socket. It does appear to share the concept of multiple CPUs on a single motherboard just a slightly different architecture. If 1C believes this technology will be mainstream, they would be crazy not to program mulithreaded technology into their game. One of the things are hoping to see with BoB is really advanced physics. The only way to make the game playable with a high degree of fidelity would be for 1c to fully exploit both cores in a concurrent fashion. If they don't, it's like using 6 cylinder of a 12 cylinder block. It will be interesting how they proceed. Thanks for the info Harrier.

TooCool_12f
03-08-2005, 04:41 PM
guys, right now, P4 uses hyperthreading, used by FB/PF... but multithreading (multiple processors) is not used by IL2 and sequels (oleg stated that already)

hopefully next geenration will be able to do so, it may bring better performance for top end machines...

as for coupling two cores on a single chip, I've read that AMD are about to do so, not intel... their opteron (socket 940 CPU, multiprocessor capable) "double core" (meaning double 64bit core on single chip) is demonstrated right now with press samples sent around the world... the socket 393 chips (follow ups of todays 64bits chips, should arrive during the second half of this year

249th_Harrier
03-08-2005, 08:25 PM
I was inspired to actually look it up. Here is the link to Hyperthreading on the Intel website:
http://www.intel.com/technology/hyperthread/
So if I write a two-thread app for a single processor system with hyperthreading, does that mean it can't utilize both processors in a two processor system? Thats too bad. It looks like intel actually is pushing for gaming on multiprocessor:
http://www.anandtech.com/news/shownews.aspx?i=23939

WB_Outlaw
03-08-2005, 08:30 PM
An application specifically designed to spread operations across multiple processors is SMP (symmetric multi-processing) enabled and no game that I know of takes advantage of it. An application so coded will get a superior performance boost. The Russians are masters of SMP b/c in the past, their single processors were not as capable as those in the West (generally speaking). I believe Sun has many Russian engineers in their SMP department.

Multithreading simply means that the main (parent) application has started (spawned) additional processes (chlidren) that run simultaneously with the parent application. Parent and children can pass data back and forth. Any language that can utilize the Windows API can do this. I have used it extensively with VB 6.0. Java and .net have a thread class built in. One example of this is to have a thread doing nothing but watching for data on the network interface and passing it along to the main application (or one of it's children) when it arrives. This way the main application (and/or other children) do not have to worry about watching the network interface.

Depending on the operating system, an application that is NOT SMP ENABLED my still get a performance boost on a SMP box b/c the operating system can manage some of the tasks across multiple CPUs.

Although I'm not entirely clear on the subject, it appears to me that hyperthreading is more like 1.5 CPUs than 2, even though it appears to be 2 to the operating system.

A multi-core CPU is simply two independnet CPUs on the same chip. If the motherbaord supports it, you could run two different operating systems simultaneously on a multi-core chip. Microsoft has already stated that a multi-core CPU will only count as one when it comes to licensing. This means that a standard Windows XP Pro install will support two dual multi-core CPUs for a total of 4 processors. That's a lot of processing power on the desktop.

AMD will release a 64 but multi-core chip way ahead of Intel. You can already buy quad Opteron boards for around $1500 that support up to 16 gig of RAM. I had my eye on one but decided to see how multi-core goes.

On a side note, as a mechanical engineer in the U.S., I firmly believe the best engineers in the world are the Russians. They have done so much with so little it's amazing. It's funny to hear people talk about how the Foxbat was such a piece of junk. They don't understand that it was made for only one thing and that was to shoot down B-70s. They would have gotten every one. If you can find Belenko he'll tell you. Also, if you ever get the chance, look up the last time a Russian aircraft was lost due to a compressor stall.

I sure hope Oleg and crew heavily invest in SMP and/or cluster architecture b/c almost everyone will have one or the other soon.

-Outlaw.

mazexx
03-08-2005, 11:44 PM
Well, WB_Outlaw's explanation does a good job of explaining it (though multithreading in VB6 really wasn't meant to be http://forums.ubi.com/groupee_common/emoticons/icon_wink.gif).

As far as I know the only flight sim that is really multi threaded is the old trusty Falcon 4.0, so this is not bleeding edge technology. It runs the "sim part" on the main thread and the ground war on a separate thread - thus utlilizing a second CPU if running on an OS that supports it...

/Mazex

OldMan____
03-09-2005, 04:44 AM
<BLOCKQUOTE class="ip-ubbcode-quote"><font size="-1">quote:</font><HR>Originally posted by ku101-Shrike:
Hardware threading and software threading are two completely separate topics, software threads reside in the same program, xp program manager doesnt show what these threads are doing, they only show the hardware threads which is what the newer cpu's are handling in better ways now. C++ has always had multithreading capability, its just the way .NET framework handles it that it has become a talked about topic lately.

with regards 64bit, its simply more and faster memory addressing, where we before could handle up to 4GB Ram, 64bit i read somwhere will allow for thousands of terrabites of ram, MS are limiting theyre servers to 230 terrabytes. <HR></BLOCKQUOTE>

just a pojtn here.. C++ does NOT have multithread support. Always multithread is implemented by Operative System API.


Very soon we will have multi-core CPU.. so HyperThreading will be a complete waste of time.

TooCool_12f
03-09-2005, 10:08 AM
Outlaw, you ever heard of Myasitchev bombers?

in the '50s, these were supposed to fly supersonic from USSR to USA and back... talk about achievements. You can check a littel about it here:

http://www.fas.org/nuke/guide/russia/bomber/m-50.htm

interesting thing, it was flown with a mini joystick on the side of the pilot, like the F16 some 25 years later

lbhskier37
03-09-2005, 10:43 AM
<BLOCKQUOTE class="ip-ubbcode-quote"><font size="-1">quote:</font><HR>Originally posted by WB_Outlaw:


AMD will release a 64 but multi-core chip way ahead of Intel. You can already buy quad Opteron boards for around $1500 that support up to 16 gig of RAM. I had my eye on one but decided to see how multi-core goes.



-Outlaw. <HR></BLOCKQUOTE>

Actually dual core Pentiums are supposed to be out in the second quarter of this year. 4 Dell systems with Dual core Intel CPUs were given away to attendees at IDF, so Intel will have dual core out before AMD. According to what they said at IDF, something like 80% of all the CPUs Intel makes with be dual core by 2006.

crazyivan1970
03-09-2005, 11:04 AM
As far as i can see from Olegs post in russian forum, Yes BOB will have those features.

NerdConnected
03-09-2005, 01:10 PM
<BLOCKQUOTE class="ip-ubbcode-quote"><font size="-1">quote:</font><HR>just a pojtn here.. C++ does NOT have multithread support. Always multithread is implemented by Operative System API.

Very soon we will have multi-core CPU.. so HyperThreading will be a complete waste of time. <HR></BLOCKQUOTE>

Hmmm, and what if these dual cores chips are both capable of 'hyper'threading? Do you then get four logical's?

Mark

249th_Harrier
03-09-2005, 04:27 PM
According to the Intel propaganda, the answer is yes. You can run four concurrent threads on a dual hyperthreaded cpu. I did a little research on hyperthreading, and it sounds like it really works (check out tomshardware.com). Apparently some parts of the cpu sit idle a lot, so having two threads run at the same time makes more efficient use of the cpu resources. This might also explain why P4 is hot as a toast-R-oven.

OldMan____
03-09-2005, 04:55 PM
Hyperthreading gains are minimal when compared to true dual core. So if you can diminish the silicon in a core to make it cheaper and put more of cores in a chip.. you gain much more than by logical multiprocessing.

in HT only units inside processor that are not being used can execute code of another thread. But even single thread code can execute in PARALLEL with itself in modern x86 processors. Your FPU units, ALU and Integer units can operate in parallel as long as onde does not require the results of the other to start current instruction.


So a VERY well written program.. made to make use of full capacity of you CPU on a single Thread,will gain ALMOST NOTHING with hyper threading. (You could make a program to gain even 40% with HT... but you can gain same performaance just by making its single therad use your CPU fully). My physics engine gains 1.15% on performance when running with HT on... not much by the extra money you pay on it.


In other words, when Dual..or quad cores become common.. HT will be just waste of silicon that could otherwise be used to add an extra core.

Aaron_GT
03-09-2005, 06:14 PM
Not only is HT less good than multicore, HT is less good than AMD's version of the same, and AMD's internal memory architecture is much less of a bottleneck. Intel is beginning to catch AMD up, but AMD is still out in front. Also in the pipeline are 4 core Sparc chips (as far as I remember AMD is also working on 4 core chips), and IBM's cell architecture. The latter may well trump all the competition, but it remains to be seen. [With regards to FPUs, etc., some chips have multiple FPUs that can work in parallel, e.g. Ultra Sparc III, or vector coprocessors such as the Power series].

Multicore, etc., works superbly for systems that are busy doing a whole variety of tasks and are a huge boost for web servers and the like as apache and so on spawn a separate thread for virtually everything. Quite how much advantage a program like BoB running alone will actually gain from multiple cores depends a lot on how well it is programmed. If you are running BoB, Track IR, Team Speak, Shoot, etc., all at once then you can automatically take some advantage of multiple cores, except that everything except BoB is relatively light weight. Anyway, it also depends on how well the OS can dispatch threads to the processors.

BaldieJr
03-09-2005, 07:56 PM
Quake3 engine is smp capable. I went through driver hell back in the day, but once I got everything lined out, the Arena became a megaton of fun. It took about 150 bots before it bogged down.... oh the fun!

I just got the AMD64 processor drivers installed and have found performance to be similar. This game runs incredibly smooth with lots of AI or online players. I get the feeling that, with one of those physics processors, I could easily keep playing on this 1-year-old machine for another 2 years.