Question about the 64bit programs.


P

Peter Jason

I have just got my new Windows7 (64bit) computer working and
I am loading new software for it.

I notice that some programs go into the "Programs Files"
folder and some into the "Program Files X86" folder.

For example when I load on Photoshop CS5, all its files end
up in the "Program Files" folder, but when I load in
PremierPro CS4 all its files end up in the "Program Files
X86" folder.

Does this mean that PhotoshopCS5 is written in 64bit, and
PremierPro in 32bit?

Can I assume that all programs are 32bit if they end up in
the "Program Files X86" folder?

If I wait long enough will the software vendors upgrade
32bit software to 64bit automatically and for free?

I just assumed that all the major software would
automatically be 64bit now. Also, does the software
recognize the 4-core cpu and automatically adjust for it?

P
 
Ad

Advertisements

P

Paul

Peter said:
I have just got my new Windows7 (64bit) computer working and
I am loading new software for it.

I notice that some programs go into the "Programs Files"
folder and some into the "Program Files X86" folder.

For example when I load on Photoshop CS5, all its files end
up in the "Program Files" folder, but when I load in
PremierPro CS4 all its files end up in the "Program Files
X86" folder.

Does this mean that PhotoshopCS5 is written in 64bit, and
PremierPro in 32bit?
Yes.

That's why they keep two folders.
Can I assume that all programs are 32bit if they end up in
the "Program Files X86" folder?

If I wait long enough will the software vendors upgrade
32bit software to 64bit automatically and for free?

I just assumed that all the major software would
automatically be 64bit now. Also, does the software
recognize the 4-core cpu and automatically adjust for it?

P
I see you're a believer in wishful thinking :)
They'll likely charge for a 64 bit version... because they can.
Even if the 64 bit version doesn't buy you any new functions
or performance. There is no guarantee that it does.

There is actually a law now, which effectively states
you can't give things away for free. Basically, the idea is,
you're not a good business man, if you're giving away
something that you could be charging for. This Act was
used as an excuse, when Apple charged a couple bucks for
something that they would otherwise have given away for free.

http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act

http://www.geek.com/articles/apple/apple-to-charge-to-turn-on-80211n-support-20070117/

*******

The 32 bit versus 64 bit thing, is independent of the one core versus
four core thing.

Multi-threading, can be implemented in either a 32 bit or a 64 bit OS,
so it's an independent factor. The ability to multi-thread is not
arbitrary - the algorithm the program uses, has to be amenable to
"divide and conquer" design.

In Photoshop, you do that, by splitting an image into four pieces,
and have each core work on a section. In Microsoft FSX flight
simulator, the main thread, and the map read lookahead thread,
operate independently, and that's how you get parallelism
there (the program launches a bunch of dissimilar threads, and
hopefully enough useful threads, so most of your cores get used).

Photoshop is one of the oldest programs to support multiple
threads of execution. It was even doing that, using a
special add-in DSP processor card, with a 50MHz processor on it.
Adobe's been doing that for a long time. And one of the reasons
they can do it, is because image processing is so inviting from
a "divide and conquer" perspective. It's a lot harder to
do things, like make Excel run on two cores. A lot harder.
Excel can do that today, but not perfectly.

You know an architecture isn't clean, when it has this many exceptions.

"Multithreaded Recalculation in Excel"

http://msdn.microsoft.com/en-us/library/bb687899.aspx

Some programs, will never be multi-threaded, because there
is no way to separate the work into pieces.

And that, is also an impetus for the existence of "Turbo" mode on
modern processors - so a dominant single-threaded program,
gets as much clock rate as possible. So there is some
recognition, that we'll be divided into two software
camps (multi-threaded versus single-threaded), for some
time to come. Some programs are dead-easy to multi-thread,
and Photoshop is the poster boy for that.

Paul
 
S

Stan Brown

Can I assume that all programs are 32bit if they end up in
the "Program Files X86" folder?
Yes.

If I wait long enough will the software vendors upgrade
32bit software to 64bit automatically and for free?
I think that's exceedingly unlikely. We already know, for example,
that Canon (boo! hiss!) will not upgrade its scanner drivers.
 
K

Ken Blake

I have just got my new Windows7 (64bit) computer working and
I am loading new software for it.

I notice that some programs go into the "Programs Files"
folder and some into the "Program Files X86" folder.

For example when I load on Photoshop CS5, all its files end
up in the "Program Files" folder, but when I load in
PremierPro CS4 all its files end up in the "Program Files
X86" folder.

Does this mean that PhotoshopCS5 is written in 64bit, and
PremierPro in 32bit?

Yes, but not so much *written in* 64-bit, as *written for* 64-bit
Windows. 64-bit software won't run under 32-bit Windows (although most
32-bit software *will* run under 64-bit Windows).

Can I assume that all programs are 32bit if they end up in
the "Program Files X86" folder?

Yes.


If I wait long enough will the software vendors upgrade
32bit software to 64bit automatically and for free?

No and no. I suppose it's remotely possible that some vendor might do
this, but I doubt it very much.

I just assumed that all the major software would
automatically be 64bit now.

No, not even close. There is still very little 64-bit software
available. And almost all the 64-bit software available comes in both
32-bit and 64-bit versions--your choice as to which you buy.


Also, does the software
recognize the 4-core cpu and automatically adjust for it?

Depends on the software, but in most cases, no.
 
L

LouB

Ken said:
Yes, but not so much *written in* 64-bit, as *written for* 64-bit
Windows. 64-bit software won't run under 32-bit Windows (although most
32-bit software *will* run under 64-bit Windows).




No and no. I suppose it's remotely possible that some vendor might do
this, but I doubt it very much.




No, not even close. There is still very little 64-bit software
available. And almost all the 64-bit software available comes in both
32-bit and 64-bit versions--your choice as to which you buy.





Depends on the software, but in most cases, no.
To add to Ken's great reply. Very little software needs the large
address space the 64 bit allows. Video editing is one type as are some
games.
 
Y

Yousuf Khan

I have just got my new Windows7 (64bit) computer working and
I am loading new software for it.

I notice that some programs go into the "Programs Files"
folder and some into the "Program Files X86" folder.

For example when I load on Photoshop CS5, all its files end
up in the "Program Files" folder, but when I load in
PremierPro CS4 all its files end up in the "Program Files
X86" folder.

Does this mean that PhotoshopCS5 is written in 64bit, and
PremierPro in 32bit?

Can I assume that all programs are 32bit if they end up in
the "Program Files X86" folder?
Yes, all programs that go into the "x86" folder are 32-bit, because
64-bit Windows presents a different "%programfiles%" environment
variable for 32-bit programs, than for 64-bit ones. If the installation
program is 32-bit, then it will automatically make calls to the 32-bit
Windows system (known as WOW64), rather than the 64-bit one. WOW64
emulates a full 32-bit Windows environment seemlessly under 64-bit Windows.
If I wait long enough will the software vendors upgrade
32bit software to 64bit automatically and for free?
Mostly no. Some trivial programs that are already free might see free
upgrades.
I just assumed that all the major software would
automatically be 64bit now. Also, does the software
recognize the 4-core cpu and automatically adjust for it?
That's got nothing to do with 32-bit vs. 64-bit. Your software will need
to be "multi-threaded" in order to use than one CPU. A lot of software
might be multi-threaded, but they may not go much beyond 2 threads at a
time, so in order to use all 4 cores on a single program would be
unlikely, but it may use 2 out of the 4 cores. Also don't forget that
there are other programs always running in the background, which will be
evenly distributed by the operating system to all four cores.

Yousuf Khan
 
Ad

Advertisements

G

GreyCloud

Paul said:
Yes.

That's why they keep two folders.


I see you're a believer in wishful thinking :)
They'll likely charge for a 64 bit version... because they can.
Even if the 64 bit version doesn't buy you any new functions
or performance. There is no guarantee that it does.
But you do get a performance boost if your application uses the x86_64
aspect of the 64-bit arch.
You see there are 8 extra registers to use that the x86 didn't have.
You'll always get a speed
increase by not storing intermediate values in memory. The speed
increase occurs when you use
the register to register operations rather than the register to memory
operations.
I've tested this out on a few programs by recompiling them for the
64-bit arch. Then digging
around thru the apps source to find potential thread utilization is
whole different matter but that can always
yield some more performance increases. And you don't have to go over
the 4Gb boundary to get these
increases.
 
P

Paul

GreyCloud said:
But you do get a performance boost if your application uses the x86_64
aspect of the 64-bit arch.
You see there are 8 extra registers to use that the x86 didn't have.
You'll always get a speed
increase by not storing intermediate values in memory. The speed
increase occurs when you use
the register to register operations rather than the register to memory
operations.
I've tested this out on a few programs by recompiling them for the
64-bit arch. Then digging
around thru the apps source to find potential thread utilization is
whole different matter but that can always
yield some more performance increases. And you don't have to go over
the 4Gb boundary to get these
increases.
Actually, one of the optimization stages of the Intel processor,
is disabled when 64 bit instructions are present. When the processor
uses 32 bit instructions, it uses "macrofusion", to bind instructions
together and advance them through the pipeline. That gets turned
off when 64 bit instructions are used, as they can't be fused to
any positive effect.

It looks like that was improved on Nehalem, while my Core2 E8400
would still suffer from that problem (10$ slower in 64 bit). So
not all Intel 64 bit capable processors, work as well in 64 bit mode,
as in 32 bit mode.

http://www.xbitlabs.com/articles/cpu/display/nehalem-microarchitecture_3.html

The AMD 32/64 bit operations aren't affected in the same way,
as AMD doesn't do their pipeline the same way as Intel.

Paul
 
P

Peter Jason

Paul said:
Yes.

That's why they keep two folders.


I see you're a believer in wishful thinking :)
They'll likely charge for a 64 bit version... because they
can.
Even if the 64 bit version doesn't buy you any new
functions
or performance. There is no guarantee that it does.

There is actually a law now, which effectively states
you can't give things away for free. Basically, the idea
is,
you're not a good business man, if you're giving away
something that you could be charging for. This Act was
used as an excuse, when Apple charged a couple bucks for
something that they would otherwise have given away for
free.

http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act

http://www.geek.com/articles/apple/apple-to-charge-to-turn-on-80211n-support-20070117/

*******

The 32 bit versus 64 bit thing, is independent of the one
core versus
four core thing.

Multi-threading, can be implemented in either a 32 bit or
a 64 bit OS,
so it's an independent factor. The ability to multi-thread
is not
arbitrary - the algorithm the program uses, has to be
amenable to
"divide and conquer" design.

In Photoshop, you do that, by splitting an image into four
pieces,
and have each core work on a section. In Microsoft FSX
flight
simulator, the main thread, and the map read lookahead
thread,
operate independently, and that's how you get parallelism
there (the program launches a bunch of dissimilar threads,
and
hopefully enough useful threads, so most of your cores get
used).

Photoshop is one of the oldest programs to support
multiple
threads of execution. It was even doing that, using a
special add-in DSP processor card, with a 50MHz processor
on it.
Adobe's been doing that for a long time. And one of the
reasons
they can do it, is because image processing is so inviting
from
a "divide and conquer" perspective. It's a lot harder to
do things, like make Excel run on two cores. A lot harder.
Excel can do that today, but not perfectly.

You know an architecture isn't clean, when it has this
many exceptions.

"Multithreaded Recalculation in Excel"

http://msdn.microsoft.com/en-us/library/bb687899.aspx

Some programs, will never be multi-threaded, because there
is no way to separate the work into pieces.

And that, is also an impetus for the existence of "Turbo"
mode on
modern processors - so a dominant single-threaded program,
gets as much clock rate as possible. So there is some
recognition, that we'll be divided into two software
camps (multi-threaded versus single-threaded), for some
time to come. Some programs are dead-easy to multi-thread,
and Photoshop is the poster boy for that.

Paul

Thank you for all the replies. I decided to build a new
computer because my old 2-core CPU with WindowsXP was
slowing up probably because of the vast number of programs I
have. The new one in a 6-core i970 with a good video card.
Nero8 transcodes movies much faster than the old system. So
far I am in the process of transferring over all relevant
stuff from the old machine via a LAN line.
 
T

TheGunslinger

I have just got my new Windows7 (64bit) computer working and
I am loading new software for it.

I notice that some programs go into the "Programs Files"
folder and some into the "Program Files X86" folder.

For example when I load on Photoshop CS5, all its files end
up in the "Program Files" folder, but when I load in
PremierPro CS4 all its files end up in the "Program Files
X86" folder.

Does this mean that PhotoshopCS5 is written in 64bit, and
PremierPro in 32bit?

Can I assume that all programs are 32bit if they end up in
the "Program Files X86" folder?

If I wait long enough will the software vendors upgrade
32bit software to 64bit automatically and for free?

I just assumed that all the major software would
automatically be 64bit now. Also, does the software
recognize the 4-core cpu and automatically adjust for it?

P
If its 64-bit, >> programs
If its 32-bit, >> programs x86

MJR
 
G

GreyCloud

Actually, one of the optimization stages of the Intel processor,
is disabled when 64 bit instructions are present. When the processor
uses 32 bit instructions, it uses "macrofusion", to bind instructions
together and advance them through the pipeline. That gets turned
off when 64 bit instructions are used, as they can't be fused to
any positive effect.

It looks like that was improved on Nehalem, while my Core2 E8400
would still suffer from that problem (10$ slower in 64 bit). So
not all Intel 64 bit capable processors, work as well in 64 bit mode,
as in 32 bit mode.

http://www.xbitlabs.com/articles/cpu/display/nehalem-microarchitecture_3.html


The AMD 32/64 bit operations aren't affected in the same way,
as AMD doesn't do their pipeline the same way as Intel.
It is hard these days to keep up with the differences between Intel and
AMD. I've always had better performance from AMD cpus.
Sun Microsystems had a web based video on computer performance issues
and found that to be most helpful, especially with on board caches,
memory and hard drives. Don't know if they still have it around now,
since Larry Ellison took over the reins.

On the IBM G3, G4 and G5 series processors, the performance was better
on a 32-bit cpu than on a 64-bit cpu. All them had 32 general purpose
registers, so if the app could run in less than 4Gb of ram it was
recommended to compile it as 32-bit. On another old Sun web site it was
recommended to compile a program as 64-bit if performance was needed.
Of course back a few years they used the AMD chips in respect to this
recommendation, and it was the reverse for their sparc chip.
I have found that using any server or database engine that 64-bit is
pretty much mandatory.
It's a field too big to specialize in anymore... overwhelming comes to mind.
 
Ad

Advertisements

P

Paul

GreyCloud said:
It is hard these days to keep up with the differences between Intel and
AMD. I've always had better performance from AMD cpus.
Sun Microsystems had a web based video on computer performance issues
and found that to be most helpful, especially with on board caches,
memory and hard drives. Don't know if they still have it around now,
since Larry Ellison took over the reins.

On the IBM G3, G4 and G5 series processors, the performance was better
on a 32-bit cpu than on a 64-bit cpu. All them had 32 general purpose
registers, so if the app could run in less than 4Gb of ram it was
recommended to compile it as 32-bit. On another old Sun web site it was
recommended to compile a program as 64-bit if performance was needed. Of
course back a few years they used the AMD chips in respect to this
recommendation, and it was the reverse for their sparc chip.
I have found that using any server or database engine that 64-bit is
pretty much mandatory.
It's a field too big to specialize in anymore... overwhelming comes to
mind.
The other thing that can't keep up, is compiler technology.
I read an article a few months ago, lamenting the fact that
there were now something like 1000 different instructions
on the Intel processor. Which makes it virtually impossible
for humans to pick the best instruction for the situation,
when doing code generation. I think the author of the article,
just wanted the hardware designers to stop... adding new
instructions :)

Paul
 
D

DanS

There is actually a law now, which effectively states
you can't give things away for free. Basically, the idea
is, you're not a good business man, if you're giving away
something that you could be charging for. This Act was
used as an excuse, when Apple charged a couple bucks for
something that they would otherwise have given away for
free.

http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act

http://www.geek.com/articles/apple/apple-to-charge-to-turn-o
n-80211n-support-20070117/
Nice paraphrase job.......the law doesn't effectively say "you
can't give things away for free."

That's only being cited as an excuse to charge extra money....

.....just like the second link you posted says.
 
G

GreyCloud

The other thing that can't keep up, is compiler technology.
I read an article a few months ago, lamenting the fact that
there were now something like 1000 different instructions
on the Intel processor. Which makes it virtually impossible
for humans to pick the best instruction for the situation,
when doing code generation. I think the author of the article,
just wanted the hardware designers to stop... adding new
instructions :)
They surely made it difficult to keep up, that much is certain.
I did some research on various sites on pipe-lining and found that the
concept dated back to 1939 and 1941 at IBM. I didn't know it went that
far back. There are some draw backs to pipe-lining and found that not
all instruction circumtstances are suitable. What happens then is an
inserted stall for branch instructions to be resolved and some times the
whole pipe line is flushed and redone to resolve the problem.
Register to register instructions inside the pipe line always get
executed, hence there will be a speed up of code versus a memory fetch.
I also found that by examining code produced by a C compiler that
produced 32-bit intel code and code produced for 64-bit intel code
resulted in the amount of code produced for the 64-bit code. The
biggest savings is in the area of stack work for functions. Which is
what I surmised was the situation anyway. Another vendor showed that
compiling for 64-bit intel is a big improvement, but not so with other
vendor processors. So I'd say that MS intentions of going 64-bit was
for speed improvements. Besides, if you load up a PC beyond 4Gb ram,
I've heard that if enough memory is provided more of the OS gets loaded
and doesn't have to fetch from the hard drive slowing things down.
Now it looks like there is a big push for developing solid state drives
to improve speed. I see that there are now 128 Gb SSDS being made
available. And I think that these are a still a bit pricey.
:)
 
Ad

Advertisements

P

Paul

DanS said:
Nice paraphrase job.......the law doesn't effectively say "you
can't give things away for free."

That's only being cited as an excuse to charge extra money....

....just like the second link you posted says.
It's "corporately responsible" to take money from people :)
If you wear a suit, that should make you feel better.
Nobody wants a rich CEO to feel bad about himself.

Paul
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top