Jump to content

Vista and Multi-core/Multi-CPUs, Continued


ericinexile

Recommended Posts

maybe the engine development of dcs started well before microsoft launched

vista... maybe even before the spread of multicore processors.

 

It's an industry wide problem, very few games take advantage of multicore cpu's yet given the relatively new technology. It's taking a while for software developers to catch up. But more importantly mainstream users are only just catching up, and programming is usually done to the lowest common denominator.

Link to comment
Share on other sites

  • Replies 159
  • Created
  • Last Reply

Top Posters In This Topic

It's an industry wide problem, very few games take advantage of multicore cpu's yet given the relatively new technology. It's taking a while for software developers to catch up. But more importantly mainstream users are only just catching up, and programming is usually done to the lowest common denominator.

 

but we know they have the balls!

:thumbup:

Link to comment
Share on other sites

I used your DCS script Wombat and it appears I am the first that it does not work for. I extracted the contents to Ka-50 folder and created a shortcut to the 4 core icon, opened the sim and in instant action I get 7-15 fps.

 

I have a qx6850 @ 3 ghz, 4Ghz ram, 2x 8800 ultra, 2x raptors, Vista 32.

Link to comment
Share on other sites

I used your DCS script Wombat and it appears I am the first that it does not work for. I extracted the contents to Ka-50 folder and created a shortcut to the 4 core icon, opened the sim and in instant action I get 7-15 fps.

 

I have a qx6850 @ 3 ghz, 4Ghz ram, 2x 8800 ultra, 2x raptors, Vista 32.

 

15 fps? don't you all think that this is weird.

i know the game makes heavy use of cpu power. but to that extent?

look at the specs from Icarus!

:cry:

 

EDIT: 4Ghz ram, thats nice!

Link to comment
Share on other sites

Multi core CPUs are far from new. Dual have been around for 3-4 years now. 64 bit support lacking i can understand due to few people owning 64bit OSs yet but failing still to adapt to 4 year old common technology is bordering on lazy.

Link to comment
Share on other sites

15 fps? don't you all think that this is weird.

i know the game makes heavy use of cpu power. but to that extent?

look at the specs from Icarus!

:cry:

 

EDIT: 4Ghz ram, thats nice!

 

I'm going to try affinity manually tonight. I did that with FalconAF and found that all 4 cores were actually being used already! We'll see what it says for BS.

Link to comment
Share on other sites

I'm going to try affinity manually tonight. I did that with FalconAF and found that all 4 cores were actually being used already! We'll see what it says for BS.

 

dcs uses 2 at max.

let's hope ED fixes this soon.

 

EDIT: btw, i'm using prifinitty, works pretty well here.

Link to comment
Share on other sites

Multi core CPUs are far from new. Dual have been around for 3-4 years now. 64 bit support lacking i can understand due to few people owning 64bit OSs yet but failing still to adapt to 4 year old common technology is bordering on lazy.

 

What technology? SMP? Do you think it is possible to calculate everything in parallel? To gain performance increase from multithreading, calculations performed in each thread must be independent. If they are not, one thread will be waiting for results from some other thread and there will be no pararell execution. How much things in simulation can be independent from each other?

Wir sehen uns in Walhalla.

Link to comment
Share on other sites

Icarus2, make sure you are using Vista and also if you continue to have problems with Wombats script, try disabling User Account Control, reboot, then try the script shortcut again, when in a mission (alt-tab and check cores).

[sIGPIC][/sIGPIC]

Microsoft Windows Vista x64 bit

Overclocked Intel Core2Duo @ 3.30GHz

6GB DDR Ram

Nvidia GTX280 1GB

DCS Blackshark Russian DVD Box and English Download

1920x1080 res. @ 37" Westinghouse LVM-37w3 1080P

Background image by Shrubbo.

Link to comment
Share on other sites

What technology? SMP? Do you think it is possible to calculate everything in parallel? To gain performance increase from multithreading, calculations performed in each thread must be independent. If they are not, one thread will be waiting for results from some other thread and there will be no pararell execution. How much things in simulation can be independent from each other?

 

i don't know, but think about it...

if setting affinity to 2 cores does a great impact,

do you really think 4 or 8 won't be of any help?

Link to comment
Share on other sites

But I should pick the 4core one anyways, because I have a quad right?

 

processors are numbered 0, 1, 2, 3.

in my case, processors 0 and 2 work as intended.

putting 1 and 3 to work doesn't make any difference (at least in terms of fps).

Link to comment
Share on other sites

Although Vista only seems to give a gain from 2 cores, I use all 8 just in case. I figure it balances the load out better even if there is no improvement over 2.

 

I tend to just set affinity to be spread across all 4 cores on my processor as well. I figure the OS is better at distributing load across the processors than I am so may as well allow it access to distribute it where it sees fit.

 

Bear in mind that it's also not only DCS running but OS threads and other things running in the background. If you've not set DCS to run across all cores and the OS for whatever reason decided to run a CPU heavy thread on one of the cores you selected to run DCS from then you'll potentially have a frame rate hit during that execution.

Link to comment
Share on other sites

To gain performance increase from multithreading, calculations performed in each thread must be independent. If they are not, one thread will be waiting for results from some other thread and there will be no pararell execution. How much things in simulation can be independent from each other?

 

Plenty in fact, this sort of thing is easily split and threaded given the rather inefficient engine does a lot of 3D processing in the cpu, the AI can be threaded separately, the physics modelling separately again. It can be very easily threaded with minimum wait times. The result will be something far more efficient than the linear monolith we have now.

Link to comment
Share on other sites

I dl'd Thg task manager off toms hardware. Wow it works great!! I picked up 20-30 frames on a quad core. All of the stutters are gone as well

 

What are your specs Did this work in Windows XP PRO or VISTA? :huh:

Modded CapLoz HeliosV2.1_1280x1024.zip

 

2x 1080p 22"Monitors, Saitek X52, Saitek Combat Rudder Pedals, Trackir5, Win7Pro Pro 64Bit, Intel Q9550 @3.8Ghz, EP45-UD3L, 8GB Ram, Nvidia 560Ti 2GB, 2x 500GB Velociraptor

 

Flaming Cliffs 3

DCS:A10C,KA-50, Huey, Mi-8, WWII Euro 40+ Supporter, Mig21

Falcon 4 BMS

IL-2 Sturmovik: 1946

Take on Helicopters

Arma 2 AO + PMC + BF All Addons Series

Arma 3

EECH & EEAH

Medivac & Search and Rescue 4 Series

 

 

Link to comment
Share on other sites

Plenty in fact, this sort of thing is easily split and threaded given the rather inefficient engine does a lot of 3D processing in the cpu, the AI can be threaded separately, the physics modelling separately again. It can be very easily threaded with minimum wait times. The result will be something far more efficient than the linear monolith we have now.

 

Yup.

 

You could have weather calculations in one thread. The flight model on another. AI on another.

 

I am sure things can be split up. Not that I think it would be easy at all, but I am sure there are many things that could be parallel.

Link to comment
Share on other sites

I made my own affinity tool for myself a few days ago in AutoIt when I found I couldn't get TaskAssign to work. At first it was a simple script that would run in the background and set the dcs.exe affinity when it found one, but I kept adding onto it. I wanted to merge the two Black Shark desktop icons into one and never have to set the affinity again. After I decided I was going to release it on the forums I cleaned up the interface, optimized some shaky code and added some error checking. Here is the result:

 

EDIT: Use this new google code project page for instructions and download link.

 

Version 2 removes the need for any user configuration. Just run and it works.

 

preview2.gif


Edited by Jesse
  • Like 4

Link to comment
Share on other sites

man, you're really into it, right?

 

i just start priffinity and leave it's window open.

then i launch dcs.

when the launcher switches to the desktop, dcs.exe always chooses 1cpu affinity.

i just click "auto set" and let dcs.exe load the game.

Link to comment
Share on other sites

man, you're really into it, right?

 

Yea it got a lot more complicated than before when it was just me using it.

In order to release it on here and have any chance of people using it, I needed to make it user friendly, warn if something is wrong, and make it work even if their setup isn't exactly like mine.

 

It might look like more work than it's worth, but in reality it should only take a couple minutes to set up. Then you can get rid of the dual desktop icons and only have one thing to do when you want to play Black shark: open the launcher. The rest is taken care of.

 

Like I said, making stuff like this is a hobby of mine. This is just the first time I've ever worked up the nerve to package and let the rest of the world try it. Even if only one person found it useful it'd be enough for me.

Link to comment
Share on other sites

My suggestion is using Wombats scripts, then follow the directions he gave to add the DCS startup commands.

 

Then you have 2 shortcuts just like you do normally, but they start with the cores you have selected.

 

No excess programs running in the backround.

 

I have attached the modified scripts. 1 for dual core, 1 for quad, 1 for 4 thread on an i7 and one for 8 threads on an i7. A singleplayer and multiplayer .cmd file. And also the process.exe file.

 

Download the file attached to this post.

Extract contents to your x:\Program Files (x86)\1C\Eagle Dynamics\Ka-50 this is the default location.

Replace the SP and MP shortcuts on your desktop with shortcuts to the appropriate SP and MP .cmd files.

 

Is it normal to cause my CPU to beep every time it loads in and out of GUI before the game finally starts?

 

It did increase my FPS from 15 to 47. SP

 

MP from 12 to 27 - 30

" any failure you meet, is never a defeat; merely a set up for a greater come back, "  W Forbes

"Success is not final, failure is not fatal, it is the courage to continue that counts,"  Winston Churchill

" He who never changes his mind, never changes anything," 

MSI z690MPG DDR4 || i914900k|| ddr4-64gb PC3200 || MSI RTX 4070Ti|Game1300w|Win10x64| |turtle beach elite pro 5.1|| ViRpiL,T50cm2|| MFG Crosswinds|| VT50CM-plus rotor Throttle || G10 RGB EVGA Keyboard/MouseLogitech || PiMax Crystal VR || 32 Samsung||

Link to comment
Share on other sites

Yup.

 

You could have weather calculations in one thread. The flight model on another. AI on another.

 

I am sure things can be split up. Not that I think it would be easy at all, but I am sure there are many things that could be parallel.

 

The problem is not splitting, but parallel execution. It is easy to split, however most threads won't be executed at the same time because of dependencies between them.

 

I suppose in good flight simulator, physics should be affected by weather. It is a dependency: aircraft movement is effected by weather (i.e.: wind). To calculate that movement, wind must be calculated before it. (you can't use numbers in equations, while they are still unknown - it is simple). It means that FM thread will wait data from weather thread - parallelism breaks.

 

Currently dcs.exe runs with 10 threads in total. It is multithreaded as most programs, however it doesn't mean that it can paralelly run on 10 CPUs.

 

There is some solutions (workarounds) for parallelism problem. It is possible to "lag" something (like using wind data from previous frame) or calculate things in advance, however such things might give strange side effects, increase calculations and even decrease performance (yes, it happens).

 

What I am saying is that parallel execution in such programs as simulators is very hard thing to accomplish (much harder than most people think).

Wir sehen uns in Walhalla.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...