| View previous topic :: View next topic |
| Author |
Message |
Rune Allnor Guest
|
Posted: Tue Nov 18, 2008 11:20 pm Post subject: Whip a duo-core PC into submission...? |
|
|
Hi all.
I have a duo-core PC which runs win XP 32. The graphics
card has lots of RAM, at least 512 MB, maybe more.
As I understand it, one of the cores is assigned to run OS
tasks, handle graphics and some other stuff. In particular,
the graphics card RAM 'spends' significant amounts of the
memory address space of this core.
Which - if correct - means that I have one core that is busy
and constrained on RAM, and another core that has little
to do and can access the full RAM memory space (2GB).
I am in the very awkward situation where I have a core
with 2 GB RAM, but the task scheduler assigns my program
to the busy core, with the end result that my program
bails out for 'out of memory' reasons at a mere 500-600 MB
(yes, I have checked).
So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
Rune |
|
| |
|
Back to top |
Vladimir Vassilevsky Guest
|
Posted: Wed Nov 19, 2008 5:39 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
Rune Allnor wrote:
| Quote: | I have a duo-core PC which runs win XP 32. The graphics
card has lots of RAM, at least 512 MB, maybe more.
As I understand it, one of the cores is assigned to run OS
tasks, handle graphics and some other stuff. In particular,
the graphics card RAM 'spends' significant amounts of the
memory address space of this core.
Which - if correct - means that I have one core that is busy
and constrained on RAM, and another core that has little
to do and can access the full RAM memory space (2GB).
|
In Win XP professional, the multiprocessing is symmetrical. The task
scheduler throws whatever active thread to either one of the cores;
there is no predestination of the threads and the memory spaces.
| Quote: | I am in the very awkward situation where I have a core
with 2 GB RAM, but the task scheduler assigns my program
to the busy core, with the end result that my program
bails out for 'out of memory' reasons at a mere 500-600 MB
(yes, I have checked).
|
This is a system issue not related to the multiprocessing.
| Quote: | So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
|
Perhaps your version of XP doesn't have the full support of the
multiprocessing.
Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com |
|
| |
|
Back to top |
Andrew Reilly Guest
|
Posted: Wed Nov 19, 2008 5:54 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On Tue, 18 Nov 2008 15:20:48 -0800, Rune Allnor wrote:
| Quote: | I have a duo-core PC which runs win XP 32. The graphics card has lots of
RAM, at least 512 MB, maybe more.
As I understand it, one of the cores is assigned to run OS tasks, handle
graphics and some other stuff. In particular, the graphics card RAM
'spends' significant amounts of the memory address space of this core.
|
I'm pretty sure that's not the way multi-core PCs work. They're
typically "SMP" systems, where the S stants for "symmetrical". Both
cores are identical, and both communicate with the same, single chunk of
memory (once they reach past their caches, which may be independent or
shared or both). The operating system assigns whichever processor is
idle to the next runnable process (or interrupt handler) in the task
queue, unless some special operation has been performed to "pin" a task
to a given CPU, or unless the OS is doing "NUMA processor affinity"
scheduling to make better use of the already-loaded contents of the per-
core caches. Your milage will definitely vary, depending on which
operating system you're running. Since you didn't specify, I'll guess
that's Windows-XP, which behaves essentially as described, I think (I
don't use it much myself). If you're using DOS or Windows 3.x, 95, 98 or
ME, then it will only *ever* use one core, because that's all it knows
how to handle.
| Quote: | Which - if correct - means that I have one core that is busy and
constrained on RAM, and another core that has little to do and can
access the full RAM memory space (2GB).
|
Nope, they both get all of RAM. Of course, your application tasks aren't
the only things competing for that RAM. Windows tends to give a *lot* of
it over to disk cache, and the operating system itself uses a fair chunk.
| Quote: | I am in the very awkward situation where I have a core with 2 GB RAM,
but the task scheduler assigns my program to the busy core, with the end
result that my program bails out for 'out of memory' reasons at a mere
500-600 MB (yes, I have checked).
|
How much disk activity are you doing? That could affect the result. If
your program is the only "busy" process on your system, and it is only
single threaded, then by definition the processor that it is running on
will be the busy one, and the other one will be mostly idle. There's
nothing that you can do about that other than re-writing the application
to use multiple threads.
| Quote: | So, how can I trick my PC to assign this single-thread program to run on
the idle core? (Yeah, I know. It's no reason to expect that it can be
done, but I have to ask...)
|
It does: and immediately that other core is no longer idle...
Cheers,
--
Andrew |
|
| |
|
Back to top |
Randy Yates Guest
|
Posted: Wed Nov 19, 2008 5:55 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
Rune Allnor <allnor@tele.ntnu.no> writes:
| Quote: | I am in the very awkward situation where I have a core
with 2 GB RAM, but the task scheduler assigns my program
to the busy core, with the end result that my program
bails out for 'out of memory' reasons at a mere 500-600 MB
(yes, I have checked).
|
Perhaps your memory is fragmented?
--
% Randy Yates % "Ticket to the moon, flight leaves here today
%% Fuquay-Varina, NC % from Satellite 2"
%%% 919-577-9882 % 'Ticket To The Moon'
%%%% <yates@ieee.org> % *Time*, Electric Light Orchestra
http://www.digitalsignallabs.com |
|
| |
|
Back to top |
Vladimir Vassilevsky Guest
|
Posted: Wed Nov 19, 2008 6:04 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
Randy Yates wrote:
| Quote: | Rune Allnor <allnor@tele.ntnu.no> writes:
I am in the very awkward situation where I have a core
with 2 GB RAM, but the task scheduler assigns my program
to the busy core, with the end result that my program
bails out for 'out of memory' reasons at a mere 500-600 MB
(yes, I have checked).
Perhaps your memory is fragmented?
|
Good point. Nitpick: in the virtual memory systems, memory fragmentation
doesn't matter, but the address space fragmentation does. It is easy
enough to run out of the address space in the 32 bit system.
Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com |
|
| |
|
Back to top |
Rune Allnor Guest
|
Posted: Wed Nov 19, 2008 10:43 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 19 Nov, 00:39, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
| Quote: | Rune Allnor wrote:
I have a duo-core PC which runs win XP 32. The graphics
card has lots of RAM, at least 512 MB, maybe more.
As I understand it, one of the cores is assigned to run OS
tasks, handle graphics and some other stuff. In particular,
the graphics card RAM 'spends' significant amounts of the
memory address space of this core.
Which - if correct - means that I have one core that is busy
and constrained on RAM, and another core that has little
to do and can access the full RAM memory space (2GB).
In Win XP professional, the multiprocessing is symmetrical. The task
scheduler throws whatever active thread to either one of the cores;
there is no predestination of the threads and the memory spaces.
|
Hm...
| Quote: | I am in the very awkward situation where I have a core
with 2 GB RAM, but the task scheduler assigns my program
to the busy core, with the end result that my program
bails out for 'out of memory' reasons at a mere 500-600 MB
(yes, I have checked).
This is a system issue not related to the multiprocessing.
|
I would think so too...
| Quote: | So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
Perhaps your version of XP doesn't have the full support of the
multiprocessing.
|
No. What seems to have happened was that some salesman told me
some BS. I use the thing to develop and run heavy-duty data
processing, so the graphics card was essential. According to the
spec the PC has 512 MB graphics memory and 256 MB video memory.
According to the salesman, the address space of this graphics card
"_comes_out_of_the_regular_RAM_address_space_ so the PC only needs
3GB RAM. No need to install the last GB since most of it can't be
accessed anyway."
It might not have made much sense to me at the time, but I was
placing a large order so I didn't expect the salesmen to tell BS.
Besides, they (the salesmen and techies) seemed to have made their
mind up pretty strongly.
And besides, it's 20 years since I knew the PC in sufficient detail
to know for sure when somebody told me BS.
So does anybody know where I can find a good overview of the
PC architecture? With particular focus on task scheduling and
addressing of graphics cards. I might need to have a chat
with somebody at the PC venodor's in a few days...
Rune |
|
| |
|
Back to top |
Rune Allnor Guest
|
Posted: Wed Nov 19, 2008 1:25 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 19 Nov, 14:01, Martin Thompson <martin.j.thomp...@trw.com> wrote:
| Quote: | Rune Allnor <all...@tele.ntnu.no> writes:
So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
You can (under windows) use the task manager to assign a process to a
particular core, but I'm not sure that's your problem.
|
Ah! That did the trick. I just assigned the process
to the 2nd CPU and the thing just went through the roof.
I'm watching the task manager as I write this, and the
program is easily chewing 750 MB of RAM, increasing as
we speak. Well, write.
| Quote: | Sorry not be more helpful!
|
More than enough as it is. More than enough.
Thanks!
Rune |
|
| |
|
Back to top |
Rune Allnor Guest
|
Posted: Wed Nov 19, 2008 2:50 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 19 Nov, 15:35, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
| Quote: | Rune Allnor wrote:
What seems to have happened was that some salesman told me
some BS.
BS is his job.
|
I'm too jaded tpo expect anyone to be good at their jobs;
not even that one...
| Quote: | I use the thing to develop and run heavy-duty data
processing, so the graphics card was essential.
So, you are using the math library which takes advantage of the graphics
processor.
|
Nope. I'm processing large amounts of data. Each individual
operation is trivial, but the scale makes stuff hard. Since
this is interactive processing, I need to be able to
visualize large amounts of data easily and fast. It only
tages $$ to get a large graphics card; naive OpenGL
programming does the rest.
| Quote: | That is supposed to speed up the operations like matrix
multiplication immensely. How well does this work in the reality?
|
I don't do that. I'm focusing on the commercial side
of things, not th etechnical. It's a matter of being
able to do stuff no one else have done before.
| Quote: | According to the
spec the PC has 512 MB graphics memory and 256 MB video memory.
What does this mean? 256M on the card + another 256M allocated from the
main memory? Sharing main memory is a cheap variant.
|
I don't know. I interpreted the ad such that the graphics
card has dedicated memory. It's a top-of-the-line model
(at least what $$ is concerned) so I expected it to be
dedicated memory.
| Quote: | According to the salesman, the address space of this graphics card
"_comes_out_of_the_regular_RAM_address_space_ so the PC only needs
3GB RAM. No need to install the last GB since most of it can't be
accessed anyway."
In the 32 bit PC, the address space of the 4th gigabyte is partually or
completely taken by the hardware peripherals. So, there could be some
sense.
|
The 32 bit system has 4G addresses but only 2G are used
for RAM. I'd espect that peripherals were mapped in the >2G
range. But then, Microsoft is involved...
| Quote: | It might not have made much sense to me at the time, but I was
placing a large order so I didn't expect the salesmen to tell BS.
Bigger order -> more BS :-)
Besides, they (the salesmen and techies) seemed to have made their
mind up pretty strongly.
BTW, as a life philosophy principle, I don't allow anyone making
decisions for me.
|
Nope. But a 20-something-year-old kid who has made up
his mind on what he considers to be his home turf,
isn't easily persuaded by somebody old enough to have
taught his teachers. Which I might actually have done.
| Quote: | And besides, it's 20 years since I knew the PC in sufficient detail
to know for sure when somebody told me BS.
The architectures change every year. Perhaps only the few system
hardware and software developers know the details.
|
Which was why I early on decided to stay away from the
HW side of things.
| Quote: | So does anybody know where I can find a good overview of the
PC architecture? With particular focus on task scheduling and
addressing of graphics cards. I might need to have a chat
with somebody at the PC venodor's in a few days...
I can get you in touch with a guy who develops the math libraries for
the graphic cards. Drop me an email.
|
Thanks, but a general on-line description will do.
Rune |
|
| |
|
Back to top |
Martin Thompson Guest
|
Posted: Wed Nov 19, 2008 7:01 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
Rune Allnor <allnor@tele.ntnu.no> writes:
| Quote: | Hi all.
I have a duo-core PC which runs win XP 32. The graphics
card has lots of RAM, at least 512 MB, maybe more.
|
Or does it make use of the system RAM?
| Quote: | As I understand it, one of the cores is assigned to run OS
tasks, handle graphics and some other stuff. In particular,
the graphics card RAM 'spends' significant amounts of the
memory address space of this core.
Which - if correct - means that I have one core that is busy
and constrained on RAM, and another core that has little
to do and can access the full RAM memory space (2GB).
|
No, both cores are available to both OS and application code. The
graphics RAM takes up address space that can't then be populated with
real memory, but not on a particular core.
| Quote: | I am in the very awkward situation where I have a core
with 2 GB RAM, but the task scheduler assigns my program
to the busy core, with the end result that my program
bails out for 'out of memory' reasons at a mere 500-600 MB
(yes, I have checked).
|
The task scheduler assigns your program to whichever core looks best
at the time, taking into account which core it ran on last, and all
sorts of other information.
I don't think this has anything to do with your out of memory error
though - as others have said, the cores are identical and used equally
by OS and app.
Is anything else using lots of RAM?
| Quote: | So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
|
You can (under windows) use the task manager to assign a process to a
particular core, but I'm not sure that's your problem.
Sorry not be more helpful!
Cheers,
Martin
--
martin.j.thompson@trw.com
TRW Conekt - Consultancy in Engineering, Knowledge and Technology
http://www.conekt.net/electronics.html |
|
| |
|
Back to top |
Vladimir Vassilevsky Guest
|
Posted: Wed Nov 19, 2008 8:35 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
Rune Allnor wrote:
| Quote: | What seems to have happened was that some salesman told me
some BS.
|
BS is his job.
| Quote: | I use the thing to develop and run heavy-duty data
processing, so the graphics card was essential.
|
So, you are using the math library which takes advantage of the graphics
processor. That is supposed to speed up the operations like matrix
multiplication immensely. How well does this work in the reality?
| Quote: | According to the
spec the PC has 512 MB graphics memory and 256 MB video memory.
|
What does this mean? 256M on the card + another 256M allocated from the
main memory? Sharing main memory is a cheap variant.
| Quote: | According to the salesman, the address space of this graphics card
"_comes_out_of_the_regular_RAM_address_space_ so the PC only needs
3GB RAM. No need to install the last GB since most of it can't be
accessed anyway."
|
In the 32 bit PC, the address space of the 4th gigabyte is partually or
completely taken by the hardware peripherals. So, there could be some
sense.
| Quote: | It might not have made much sense to me at the time, but I was
placing a large order so I didn't expect the salesmen to tell BS.
|
Bigger order -> more BS :-)
| Quote: | Besides, they (the salesmen and techies) seemed to have made their
mind up pretty strongly.
|
BTW, as a life philosophy principle, I don't allow anyone making
decisions for me.
| Quote: | And besides, it's 20 years since I knew the PC in sufficient detail
to know for sure when somebody told me BS.
|
The architectures change every year. Perhaps only the few system
hardware and software developers know the details.
| Quote: | So does anybody know where I can find a good overview of the
PC architecture? With particular focus on task scheduling and
addressing of graphics cards. I might need to have a chat
with somebody at the PC venodor's in a few days...
|
I can get you in touch with a guy who develops the math libraries for
the graphic cards. Drop me an email.
Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com |
|
| |
|
Back to top |
langwadt@fonz.dk Guest
|
Posted: Wed Nov 19, 2008 11:22 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 19 Nov., 14:25, Rune Allnor <all...@tele.ntnu.no> wrote:
| Quote: | On 19 Nov, 14:01, Martin Thompson <martin.j.thomp...@trw.com> wrote:
Rune Allnor <all...@tele.ntnu.no> writes:
So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
You can (under windows) use the task manager to assign a process to a
particular core, but I'm not sure that's your problem.
Ah! That did the trick. I just assigned the process
to the 2nd CPU and the thing just went through the roof.
I'm watching the task manager as I write this, and the
program is easily chewing 750 MB of RAM, increasing as
we speak. Well, write.
|
strange, it just doesn't make sense, the OS pick what ever core is
available and it will then max that out.
if I start a heavy matlab script on my duo it will immediately
show 100% load on one of the cpu's, if I start another matlab
and start another heavy script in that the other cpu will also
get fully loaded.
(some matlab function like fft can use both cores at the same time)
as for memory, afaik 32bit windows can use 4gb, but a single task
can only get 2gb, 2gb is for kernel. theres a boot option that makes
it 3gb for apps and 1gb fopr kernel but I've heard not all driver are
compatible
-Lasse |
|
| |
|
Back to top |
Rune Allnor Guest
|
Posted: Thu Nov 20, 2008 8:59 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 20 Nov, 00:22, "langw...@fonz.dk" <langw...@fonz.dk> wrote:
| Quote: | On 19 Nov., 14:25, Rune Allnor <all...@tele.ntnu.no> wrote:
On 19 Nov, 14:01, Martin Thompson <martin.j.thomp...@trw.com> wrote:
Rune Allnor <all...@tele.ntnu.no> writes:
So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
You can (under windows) use the task manager to assign a process to a
particular core, but I'm not sure that's your problem.
Ah! That did the trick. I just assigned the process
to the 2nd CPU and the thing just went through the roof.
I'm watching the task manager as I write this, and the
program is easily chewing 750 MB of RAM, increasing as
we speak. Well, write.
strange, it just doesn't make sense, the OS pick what ever core is
available and it will then max that out.
|
Not strange. The techies who sold me the thing (see another post)
made sure I only got 3GB RAM. One core has 1GB and the other 2GB.
I need to manually make sure that these programs run on the
2nd core.
| Quote: | as for memory, afaik 32bit windows can use 4gb, but a single task
can only get 2gb, 2gb is for kernel.
|
The reason why you can't get more than 2 GB is that one needs
a signed offset to access the memory randomly. In the binary
number system you use one bit for the sign, so a 32-bit int
can hold a 31-bit number + sign.
| Quote: | theres a boot option that makes
it 3gb for apps and 1gb fopr kernel but I've heard not all driver are
compatible.
|
I've never heard of that option before. Hopefully, people use
it to map addresses of peripherals, like graphics cards etc.
Rune |
|
| |
|
Back to top |
langwadt@fonz.dk Guest
|
Posted: Thu Nov 20, 2008 9:36 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 20 Nov., 09:59, Rune Allnor <all...@tele.ntnu.no> wrote:
| Quote: | On 20 Nov, 00:22, "langw...@fonz.dk" <langw...@fonz.dk> wrote:
On 19 Nov., 14:25, Rune Allnor <all...@tele.ntnu.no> wrote:
On 19 Nov, 14:01, Martin Thompson <martin.j.thomp...@trw.com> wrote:
Rune Allnor <all...@tele.ntnu.no> writes:
So, how can I trick my PC to assign this single-thread
program to run on the idle core? (Yeah, I know. It's no
reason to expect that it can be done, but I have to ask...)
You can (under windows) use the task manager to assign a process to a
particular core, but I'm not sure that's your problem.
Ah! That did the trick. I just assigned the process
to the 2nd CPU and the thing just went through the roof.
I'm watching the task manager as I write this, and the
program is easily chewing 750 MB of RAM, increasing as
we speak. Well, write.
strange, it just doesn't make sense, the OS pick what ever core is
available and it will then max that out.
Not strange. The techies who sold me the thing (see another post)
made sure I only got 3GB RAM. One core has 1GB and the other 2GB.
I need to manually make sure that these programs run on the
2nd core.
|
That not how it works, it is shared memory the two cores both have
equal access
to all the memory in the same 4gb memory space.
| Quote: |
as for memory, afaik 32bit windows can use 4gb, but a single task
can only get 2gb, 2gb is for kernel.
The reason why you can't get more than 2 GB is that one needs
a signed offset to access the memory randomly. In the binary
number system you use one bit for the sign, so a 32-bit int
can hold a 31-bit number + sign.
|
might be, could also be that it was a simple way of dividing the
memory 32 bit
memory in application and executive access
| Quote: |
theres a boot option that makes
it 3gb for apps and 1gb fopr kernel but I've heard not all driver are
compatible.
I've never heard of that option before. Hopefully, people use
it to map addresses of peripherals, like graphics cards etc.
|
if you have an application that needs more that 2gb, it is either that
or going
to 64bit ...
-Lasse |
|
| |
|
Back to top |
Rune Allnor Guest
|
Posted: Fri Nov 21, 2008 9:08 pm Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On 21 Nov, 21:28, "Fred Marshall" <fmarshallx@remove_the_x.acm.org>
wrote:
| Quote: | 32 bits will address 4GB - unsigned integer. And, that's how a PC works
unless I'm very mistaken.
|
After I gave up following the HW circus, some 20 years ago,
my main influence is SW methods. In C++ the two concepts
used are the Pointer type, which on Win32 contains the 32 bit
pointer, and the Pointer Difference type, which is needed to
handle address offsets. Since differences can be negaive,
the address space available is 2GB.
| Quote: | System applications use address *space* - not RAM. That's why you see many
new mainboards being offered with 3GB of RAM and DDR3 (3 channel) memory
access.
The older DDR2 would access with 2 channels and, thus, it was nice to have
the memory symmetrical in halves.
But, with the 3GB+ limitation of available address space, it makes some
sense to offer machines with 3GB of memory - even though perhaps 3.2GB or so
would work just as well.
(With memory being relatively cheap, it's easy to just throw 4GB into a DDR2
machine and only use 3+GB of it in reality. But, cost is important in a
commodity market so populating with 3GB total makes sense if you can use it
speedily - thus DDR3).
|
The way I interpret this is that each core can handle 2GB of
address space. The worst-case scenario is that you have one
2GB process running on each core (ignoring OS and other
overheads) in which case I naively assume that 4 GB of RAM
is needed.
| Quote: | I believe that the graphics card memory uses part of that address space so
that could readily be 0.5GB by itself.
|
That's what the salesman who sold me the thing said.
| Quote: | The whole issue of parallel processing hinges on the ability to build
programs that make good use of multiple processors. This remains somewhat
of a challenge to realize.
|
Well, yes. However, for now I'll settle for one core
that can access 2GB of RAM, leaving the other core to
run the OS and whatever other stuff is going on.
In the long run the plan is to use some multi-threading
where some pre-processing of data, main processing and GUI
are done in different sub-threads. It will be a a couple
of years till I get there; hopefully quad-core laptops
are available by then.
| Quote: | Left to its own devices, a multicore CPU system will task the processors in
some fashion that makes sense to the CPU/system.
I don't know but it surely makes sense to give some ability to the
programmer to assign cores among threads if you know that you have at least
two heavy-duty threads that could run in parallel advantageously.
|
The problem is that *I* know that the threads will
eventually become heavy-duty (because I know what
I will use the program for), but the task scheduler
doesn't. It only sees a GUI that starts and then
gos idle. No CPU load to speak of; no memory
assignment. Until I start importing data from file.
Then it grabs all it kan cet.
I know there are some smart programmers out there,
but I don't see how they can anticipate the
characteristics of my programs just like that.
| Quote: | A quick Google on multicore thread assignment resulted in this article ..
which, if a bit sales oriented, touches on the issues. If they can do it,
so can you.
|
Yes, but there is the time factor. Not much time to learn.
....
| Quote: | Rune, how did you do it?
|
Do what? I used the task manager with the Affinity setting
to allow the process to run on the one core which can access
the 2 GB of RAM (WinXP Pro). So I can do what I want;
the problem is that I need to do that manually every
time I start the program.
The data processing took some time to crack. The general
ideas have fermented, so to speak, in my mind for over a
decade already; some simplifications came about this
summer. Only last night did I find the way to simplify
the processing to the extent that the goals can be
achieved with the resources at my disposal. It's 20 years
since I last worked with memory-limited programs (that
infamous 64k segments and 640 kB RAM on the XT/AT) so
it took some time to get back in that mode of thinking.
Anyway, a night of insomnia in a freak winter weather was
all I needed to see how to get the job done without
requiring 16GB RAM.
Rune |
|
| |
|
Back to top |
dbd Guest
|
Posted: Sat Nov 22, 2008 1:32 am Post subject: Re: Whip a duo-core PC into submission...? |
|
|
On Nov 21, 1:08 pm, Rune Allnor <all...@tele.ntnu.no> wrote:
....
..>
..> After I gave up following the HW circus, some 20 years ago,
..> my main influence is SW methods. In C++ the two concepts
..> used are the Pointer type, which on Win32 contains the 32 bit
..> pointer, and the Pointer Difference type, which is needed to
..> handle address offsets. Since differences can be negaive,
..> the address space available is 2GB.
What C++ sees is a meta-machine that exists for the convenience of
the programmer. It is not the machine implemented by the OS, assigned
to an application or addressed by a core.
..> ...
..> The way I interpret this is that each core can handle 2GB of
..> address space. The worst-case scenario is that you have one
..> 2GB process running on each core (ignoring OS and other
..> overheads) in which case I naively assume that 4 GB of RAM
..> is needed.
..>
As Fred said, the OS and cores can address 4GB of ram, some of which
is mapped to things like graphics memory.
| Quote: | ...
Well, yes. However, for now I'll settle for one core
that can access 2GB of RAM, leaving the other core to
run the OS and whatever other stuff is going on.
|
Under XP, applications are limited to a 2GB space which may be mapped
anywhere in available ram or virtual memory. Each application gets
it's own space. If total space requirements exceed available ram,
virtual memory is mapped into the space. Since the virtual memory is
on disk it slows the processing considerably. The space of an
application is mapped the same for any core that may be executing that
application's threads, however, cache contents may have to be reloaded
if there is a core switch.
..> ...
..> It's 20 years
..> since I last worked with memory-limited programs (that
..> infamous 64k segments and 640 kB RAM on the XT/AT) so
..> it took some time to get back in that mode of thinking.
The 640 kB of a 1MB RAM memory space is now the 3.x GB of a 4GB RAM
space. All 3 GB of RAM installed hardware may be usable by the OS. Not
all of 4 GB of RAM installed hardware will be usable by the OS.
I think the Vista x32s are the same. Vista x64 Home is up to 8 GB RAM
and the more expensive x64 Vistas run to 128 GB RAM space. Server
style motherboards are available today that mount 8 dimm's of 2 GB
DRR2. There -are- solutions in bigger RAM spaces today.
..> ...
..> Rune
Dale B. Dalrymple |
|
| |
|
Back to top |
|