Recommended Operating System and Multiprocessor Support


Mike Unsold
 

Hi Tom

What I wanted to do was emphasize my
chat buddies nondistinction of multi-threaded written app / multi-
processor enabled app.
It should have been something like:
If its a multi-threaded app / multi-processor enabled app
according
to their terms)...blah...blah...blah....
Us "Big Iron Workers" actually have the pleasure of assigning at
least one processor (CP in my world) to an application, or for the
sole use of the OS and let the other CPs balance the remaining
OS/application workload. By no means am I saying one is better than
the other; just making some observations.
Single processors handle multi-threaded apps similarly on MFs. As
you're familiar with paging, our processors do a analogous "cycle
steal" where one thread sits idle for however many nano/pico-
seconds
to give service to the other thread and/or application.


Very interesting. I was not aware that you can assign apps to
processors on MFs. For the last 10 years I have been working only on
the Windows platform and before that on a Vax/VMS cluster. Don't
remember how threads worked on VMS but Microsoft hired the same team
from Digital to develop its NT, 2000, and XP line of OSs.

Catch you later
Mike


txduggan <tduggan@...>
 

Hey Mike...

--- In ImagesPlus@y..., "mlunsold" <mike@m...> wrote:


I'm currently in a "chat"
where the thinking is multi-threaded does not necessarily mean
multi-processor enabled.....
Yes - it means the same thing on Windows. Programs can be multi-
threaded meaning they contain more than one independent thread of
execution. Each processor can only run one thread at a time and
does
a round-robin to divide processing time between all of the threads
executing on it. A multi-processor machine can run one thread per
processor for true parallel processing but each processor still
does
the round-robin between threads assigned to it.

That's what I thought. Very much like mainframe architecture. What
you're calling "round-robin" we call "cycling."




To me, in my mainframe mentality, if its a single-threaded app on
a
multi-processor, you get single threaded service.
Correct and Windows decides which processor runs the single-
threaded
app.

If its a multi-threaded/processor app running on a single
processor, you get single threaded service.
No such thing as a multi-threaded/processor app. As explained above
programs can be designed to be single or multi-threaded and the
programmer uses a BeginThread() and ExitThread() function to start
and stop threads. The WIN32 API does not contain a function that
allows the programmer to assign a thread to a processor. Windows
notices that an app has more than one thread and that the computer
has more than one processor and Windows balances the threads
between
processors.

Operating systems are designed to use mutliple processors and
assign
threads from multi-thread apps

Each thread of the multi-threaded app on a single processor
computer
appears to run independant of each other, it appears as if both are
running. Actually windows only runs one thread per processor at a
time. For each processor Windows switches very quickly between each
thread assigned to the processor give the illusion that all are
running simultaneously.
That was poorly worded by me. What I wanted to do was emphasize my
chat buddies nondistinction of multi-threaded written app / multi-
processor enabled app.

It should have been something like:
If its a multi-threaded app / multi-processor enabled app (according
to their terms)...blah...blah...blah....

Us "Big Iron Workers" actually have the pleasure of assigning at
least one processor (CP in my world) to an application, or for the
sole use of the OS and let the other CPs balance the remaining
OS/application workload. By no means am I saying one is better than
the other; just making some observations.

Single processors handle multi-threaded apps similarly on MFs. As
you're familiar with paging, our processors do a analogous "cycle
steal" where one thread sits idle for however many nano/pico-seconds
to give service to the other thread and/or application.



If its a multi-threaded app running on a multi-
processor, Hello Dolly!
Yep! Now each processor can do its round-robin between all assigned
threads and do it simultaneously.

Tom, if your interested in a good explanation of Windows internals,
fill your pockets with all those Oreo cookies and ale that people
are sending you and ask Cindy Crawford to meet you in the computer
section at Borders tonight. She will be very impressed when you
pull "Advanced Windows" by Jeffrey Richter or "Programming Windows"
by Charles Petzold from the book shelf.
*chuckle*

Actually, have my own "Cindy" right here at home....beauty and
brains :D

What this is boiling down to is what I mentioned in a previous post:
nomenclature, buzz words, what ever you want to call it. I find most
of the time that I'm talking about the same thing that the
client/server tech is talking about, but I get caught up in his/her's
tech talk.

Thanks for the very well detailed explanation!

TD


Mike Unsold
 

I'm currently in a "chat"
where the thinking is multi-threaded does not necessarily mean
multi-processor enabled.....
Yes - it means the same thing on Windows. Programs can be multi-
threaded meaning they contain more than one independent thread of
execution. Each processor can only run one thread at a time and does
a round-robin to divide processing time between all of the threads
executing on it. A multi-processor machine can run one thread per
processor for true parallel processing but each processor still does
the round-robin between threads assigned to it.


To me, in my mainframe mentality, if its a single-threaded app on a
multi-processor, you get single threaded service.
Correct and Windows decides which processor runs the single-threaded
app.

If its a multi-threaded/processor app running on a single
processor, you get single threaded service.
No such thing as a multi-threaded/processor app. As explained above
programs can be designed to be single or multi-threaded and the
programmer uses a BeginThread() and ExitThread() function to start
and stop threads. The WIN32 API does not contain a function that
allows the programmer to assign a thread to a processor. Windows
notices that an app has more than one thread and that the computer
has more than one processor and Windows balances the threads between
processors.

Operating systems are designed to use mutliple processors and assign
threads from multi-thread apps

Each thread of the multi-threaded app on a single processor computer
appears to run independant of each other, it appears as if both are
running. Actually windows only runs one thread per processor at a
time. For each processor Windows switches very quickly between each
thread assigned to the processor give the illusion that all are
running simultaneously.

If its a multi-threaded app running on a multi-
processor, Hello Dolly!
Yep! Now each processor can do its round-robin between all assigned
threads and do it simultaneously.

Tom, if your interested in a good explanation of Windows internals,
fill your pockets with all those Oreo cookies and ale that people
are sending you and ask Cindy Crawford to meet you in the computer
section at Borders tonight. She will be very impressed when you
pull "Advanced Windows" by Jeffrey Richter or "Programming Windows"
by Charles Petzold from the book shelf.

Mike


txduggan <tduggan@...>
 

Thanks, Ken...I remember that response, but I'm currently in a "chat"
where the thinking is multi-threaded does not necessarily mean multi-
processor enabled.....

To me, in my mainframe mentality, if its a single-threaded app on a
multi-processor, you get single threaded service. If its a multi-
threaded/processor app running on a single processor, you get single
threaded service. If its a multi-threaded app running on a multi-
processor, Hello Dolly!

Not sure if I'm getting caught up in the nomenclature, or its my real
slow leak, but it gets a tad frustrating when you get 17 different
answers to the same question where, in theory, I'm expecting maybe 2
or 3 that may be diverse, but not by much.

Thanks :)

TD

--- In ImagesPlus@y..., Ken Florentino <kflor@p...> wrote:
Tom,

I'm getting a lot of brouhaha about the new dual system I
have...let's go to the source...IP is multi-threaded...is it also
multi-processor enabled, or am I in one of those "vague areas"
again?

Mike's reply has the answer:

Being multi-treaded allows "Windows to decide which processor" to
use meaning it can utilize multiple processors. So
you are going to get some bang from your multiprocessors! I'm
jealous!

IP was initially designed to be multi-threaded. The IP code
issues a
BeginThread() function and Windows decides which processor will
run
the thread. Currently compute intense commands such as all of
the
iterative restoration methods, adaptive histogram modification,
region growing, dilation, and erosion are multithreaded.
Operators
that are multi-threaded diaplay a yellow frame around an image
while
the operation is executing and also have a Cancel button to stop
the
execution. If the Cancel button is used the current iteration is
finished before control is returned to the operator dialog box.
Ken


Ken Florentino <kflor@...>
 

Tom,

I'm getting a lot of brouhaha about the new dual system I
have...let's go to the source...IP is multi-threaded...is it also
multi-processor enabled, or am I in one of those "vague areas" again?
Mike's reply has the answer:

Being multi-treaded allows "Windows to decide which processor" to use meaning it can utilize multiple processors. So
you are going to get some bang from your multiprocessors! I'm jealous!

IP was initially designed to be multi-threaded. The IP code issues a
BeginThread() function and Windows decides which processor will run
the thread. Currently compute intense commands such as all of the
iterative restoration methods, adaptive histogram modification,
region growing, dilation, and erosion are multithreaded. Operators
that are multi-threaded diaplay a yellow frame around an image while
the operation is executing and also have a Cancel button to stop the
execution. If the Cancel button is used the current iteration is
finished before control is returned to the operator dialog box.
Ken


txduggan <tduggan@...>
 

I'm getting a lot of brouhaha about the new dual system I
have...let's go to the source...IP is multi-threaded...is it also
multi-processor enabled, or am I in one of those "vague areas" again?

Thanks :)

TD
--- In ImagesPlus@y..., "mlunsold" <mike@m...> wrote:
Hi Group

Windows 2000 and XP are the recommended operating systems for image
processing in general and IP in particular. Windows 98 with 256 or
less RAM is a good second choice. I have heard a lot of probelms
with ME and would not recommend using it for image processing.
Windows 2000 and XP are preferred since they both have robust RAM
and virtual memory management. Check the size of your page file and
bump it up to match the amount of memory used by the images you
normally have open within reason.

I developed and tested most of the current version of IP under
Windows 98 on a 400Mhz Gateway with 128 RAM. This machine can work
reasonably well with 5 or 6 2160x1440 RGB images but it can be slow
and does a lot of paging memory to disk. A 1500Mhz Pentium 4 with
512
RDRAM makes IP run nicely with a group of 10 - 20 2160x1440 images
loaded. One of the big reasons for all of the current work with
auto
crop, auto align and combine of a really large set of images of the
planets (100-500 or more images) is that processing this quanity of
data needs to be file based and not all in memory. In March and
April the crop, align, and combine functions for deep space objects
will be added to IP for the same reason.


IP was initially designed to be multi-threaded. The IP code issues
a
BeginThread() function and Windows decides which processor will run
the thread. Currently compute intense commands such as all of the
iterative restoration methods, adaptive histogram modification,
region growing, dilation, and erosion are multithreaded. Operators
that are multi-threaded diaplay a yellow frame around an image
while
the operation is executing and also have a Cancel button to stop
the
execution. If the Cancel button is used the current iteration is
finished before control is returned to the operator dialog box.

I am planning on adding several new multiresolution based operators
to IP this summer and they will all be multi-threaded.

Mike Unsold


dennis_persyk <dpersyk@...>
 

I am currently using Windows ME and find that it works as well with
IP as it does with any application. I don't like ME because it
occasionally hangs and does weird things like changing icons without
my permission. But if you are running ME I would not hesitate to buy
IP and use it.

Dennis Persyk Hampshire, Il

--- In ImagesPlus@y..., "mlunsold" <mike@m...> wrote:
Hi Group

Windows 2000 and XP are the recommended operating systems for image
processing in general and IP in particular. Windows 98 with 256 or
less RAM is a good second choice. I have heard a lot of probelms
with ME and would not recommend using it for image processing.
Windows 2000 and XP are preferred since they both have robust RAM
and virtual memory management. Check the size of your page file and
bump it up to match the amount of memory used by the images you
normally have open within reason.

Mike Unsold


Shabowski, Bob <bob.shabowski@...>
 

Very good specific information.

Thanks Mike

Bob

-----Original Message-----
From: mlunsold [mailto:mike@...]
Sent: Wednesday, February 20, 2002 1:12 PM
To: ImagesPlus@...
Subject: [ImagesPlus] Recommended Operating System and Multiprocessor
Support


Hi Group

Windows 2000 and XP are the recommended operating systems for image
processing in general and IP in particular. Windows 98 with 256 or
less RAM is a good second choice. I have heard a lot of probelms
with ME and would not recommend using it for image processing.
Windows 2000 and XP are preferred since they both have robust RAM
and virtual memory management. Check the size of your page file and
bump it up to match the amount of memory used by the images you
normally have open within reason.

I developed and tested most of the current version of IP under
Windows 98 on a 400Mhz Gateway with 128 RAM. This machine can work
reasonably well with 5 or 6 2160x1440 RGB images but it can be slow
and does a lot of paging memory to disk. A 1500Mhz Pentium 4 with 512
RDRAM makes IP run nicely with a group of 10 - 20 2160x1440 images
loaded. One of the big reasons for all of the current work with auto
crop, auto align and combine of a really large set of images of the
planets (100-500 or more images) is that processing this quanity of
data needs to be file based and not all in memory. In March and
April the crop, align, and combine functions for deep space objects
will be added to IP for the same reason.


IP was initially designed to be multi-threaded. The IP code issues a
BeginThread() function and Windows decides which processor will run
the thread. Currently compute intense commands such as all of the
iterative restoration methods, adaptive histogram modification,
region growing, dilation, and erosion are multithreaded. Operators
that are multi-threaded diaplay a yellow frame around an image while
the operation is executing and also have a Cancel button to stop the
execution. If the Cancel button is used the current iteration is
finished before control is returned to the operator dialog box.

I am planning on adding several new multiresolution based operators
to IP this summer and they will all be multi-threaded.

Mike Unsold



To unsubscribe from this group, send an email to:
ImagesPlus-unsubscribe@...



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/


Mike Unsold
 

Hi Group

Windows 2000 and XP are the recommended operating systems for image
processing in general and IP in particular. Windows 98 with 256 or
less RAM is a good second choice. I have heard a lot of probelms
with ME and would not recommend using it for image processing.
Windows 2000 and XP are preferred since they both have robust RAM
and virtual memory management. Check the size of your page file and
bump it up to match the amount of memory used by the images you
normally have open within reason.

I developed and tested most of the current version of IP under
Windows 98 on a 400Mhz Gateway with 128 RAM. This machine can work
reasonably well with 5 or 6 2160x1440 RGB images but it can be slow
and does a lot of paging memory to disk. A 1500Mhz Pentium 4 with 512
RDRAM makes IP run nicely with a group of 10 - 20 2160x1440 images
loaded. One of the big reasons for all of the current work with auto
crop, auto align and combine of a really large set of images of the
planets (100-500 or more images) is that processing this quanity of
data needs to be file based and not all in memory. In March and
April the crop, align, and combine functions for deep space objects
will be added to IP for the same reason.


IP was initially designed to be multi-threaded. The IP code issues a
BeginThread() function and Windows decides which processor will run
the thread. Currently compute intense commands such as all of the
iterative restoration methods, adaptive histogram modification,
region growing, dilation, and erosion are multithreaded. Operators
that are multi-threaded diaplay a yellow frame around an image while
the operation is executing and also have a Cancel button to stop the
execution. If the Cancel button is used the current iteration is
finished before control is returned to the operator dialog box.

I am planning on adding several new multiresolution based operators
to IP this summer and they will all be multi-threaded.

Mike Unsold