SMT

I’ve read that:

To utilize a dual core processor, the operating system must be able to recognize multi-threading and the software must have simultaneous multi-threading technology (SMT) written into its code. SMT enables parallel multi-threading wherein the cores are served multi-threaded instructions in parallel. Without SMT the software will only recognize one core. Adobe Photoshop is an example of SMT-aware software. SMT is also used with multi-processor systems common to servers.

Does openSUSE 11.2 (or 11.1) “have simultaneous multi-threading technology (SMT) written into its code (?)”

On 11/29/2009 10:36 AM, Randymanme wrote:
>
> I’ve read that:
>
> To utilize a dual core processor, the operating system must be able to
> recognize multi-threading and the software must have simultaneous
> multi-threading technology (SMT) written into its code. SMT enables
> parallel multi-threading wherein the cores are served multi-threaded
> instructions in parallel. Without SMT the software will only recognize
> one core. Adobe Photoshop is an example of SMT-aware software. SMT is
> also used with multi-processor systems common to servers.
>
> Does openSUSE 11.2 (or 11.1) “have simultaneous multi-threading
> technology (SMT) written into its code (?)”

All Linux kernels recognize multiple cores and do SMP. If user code
supports SMT, the kernel will. This is not a distro issue.

If you don’t mind me saying so, if this is something that the operating system does, and openSUSE 11.2 is the operating system I use, then it seems to me that, yes, this is a distro question. Where else do you suggest I ask it? A while back, I asked a question pertaining to getting Ubuntu installed on my computer on Ubuntu Forums and I was told to ask it here because open SUSE is the system I’m using.
Plus, presently, this is a hardware forum.

Moving on. About the following:

Make Linux faster and lighter | TuxRadar Linux

“Run boot processes in parallel
Parallelism can lead to big performance boosts, because running two processes at once will take half the time of running them sequentially (at least in theory). You can take advantage of this technique in Grub by firing up /etc/init.d/rc in a text editor with root permissions and finding the following line:
CONCURRENCY=none
You would then replace none with shell before saving and closing your text editor. When you reboot you should see a noticeable decrease in your boot times (around one or two seconds in most cases). If you don’t see an increase, this is because this tweak is aimed primarily at systems with multi-core processors. If you have a solo-core processor you could actually increase your boot time if you use this tweak, which was the case with our test system where we saw a 2.4-second increase.”

I haven’t tried this because I don’t know how to use a text editor. But in the other article I alluded to in my previous post, the author makes it sound like this could be something like I could just enable in my os. Am I right? And if so, how?

I would seem to me that this is obviously not something that just happens automatically.

Randymanme wrote:
> If you don’t mind me saying so, if this is something that the operating
> system does, and openSUSE 11.2 is the operating system I use, then it
> seems to me that, yes, this is a distro question. Where else do you
> suggest I ask it?

you misunderstood LarryFinger’s answer…

see, you asked if openSUSE supports SMT, his answer was that ALL Linux
distributions support SMT, not just openSUSE…

> /etc/init.d/rc in a text editor with root permissions and
> finding the following line:
> CONCURRENCY=none
>
> I haven’t tried this because I don’t know how to use a text editor.

i respectfully suggest that the potential savings of two seconds in
boot time is not worth taking the chance you will hose your system
trying to find and change that line in /etc/init.d/rc…for one thing
those instructions were written for a Ubuntu user and openSUSE’s rc
layout is some different…

and, i don’t easily find where that line exists…

> But in the other article I alluded to in my previous post, the author
> makes it sound like this could be something like I could just enable in
> my os. Am I right? And if so, how?

i guess you misunderstood that author (or that author is misstaken),
the ability to use multiple processors is built into and available in
all modern Linux kernels…and, has been for some years…you don’t
have to do anything to “turn it on”

> I would seem to me that this is obviously not something that just
> happens automatically.

ok, the instructions on how to change that CONCURRENCY line is not to
“turn on” the ability to use multiple cores in the OS, but rather to
allow the boot process itself use more than one core/thread…

perhaps that is the default in openSUSE since i do not find the
restricting CONCURRENCY=none statement, but we would need a ‘real’
guru to tell us…


palladium

All Linux kernels recognize multiple cores and do SMP. If user code
supports SMT, the kernel will. This is not a distro issue.[/QUOTE]

“User code(?)” Is that about something that I have to do, or can do, so that my operating system will actually implement parallel multi-threading to the processors?

While all Linux kernels do recognize multiple cores, it looks to me like they still (perhaps by default?) allow sequential threading.

The system monitor in PCLinuxOS GNOME, analyzes and graphs both processors individually and in tandem. Prior to my enabling cpu microcode updating, the first processor was always 40% to 50 % more active than the second one, with the later generally (at least while I was looking) hovering around 0 to 8%. Following my enabling cpu microcode updating, the sequential ordering of the threading looks to be alternating back and forth every few seconds. But, as I have it in my mind, this sequential alternating still isn’t parallel multi-threading. I would think that parallel multi-threading would have both processors simultaneously at, say, 20%, instead of the first one at, say, 40% to 50% while the second one is at, say, 0% to 8%.

Obviously, the fact that “All Linux kernels recognize multiple cores and do SMP. If user code
supports SMT, the kernel will,” does not, in and of itself, implement parallel multi-threading. What, precisely, will?

The system monitor in OpenSUSE 11.2 GNOME, by the way, only recognizes the two processors as a single entity.

IF A PROGRAM IS WRITTEN AS A SINGLE THREAD, MULTIPLE CPUS WILL DO NO GOOD.

I had to shout at you because you don’t seem to understand the points we
have made. ALL Linux kernels handle SMP. They can run multiple
programs at the same time, but any single program can use ONLY one CPU
at a time UNLESS it has been coded with multiple threads!

As might be apparent in some of my others posts, here and elsewhere, I’m a noob with little skill and less knowledge. Further, I can be rather obtuse, and all the more so once I’ve accepted in my mind an idea that other folks say isn’t or can’t be so.

Having learned to trust my own intuition, I’ve become rather comfortable with my mindset – which is not say that it can’t be improved upon.

Now let’s see if I’m following you here. When (maybe I need to find out the person’s name who wrote what I’m going to quote – working on it) the person said: " . . . the operating system must be able to recognize multi-threading and the software must have simultaneous multi-threading technology (SMT) written into its code . . .," the “software” s/he was referring to are the various programs and not the operating system itself.

May I extrapolate from what you’re shooting and conclude that there cannot be any other programming that can be made part of an operating system that can add SMT into a program’s code where it didn’t previously exist prior to it arriving at the instant computer?

On 12/01/2009 04:16 PM, Randymanme wrote:
>
> May I extrapolate from what you’re shooting and conclude that there
> cannot be any other programming that can be made part of an operating
> system that can add SMT into a program’s code where it didn’t previously
> exist prior to it arriving at the instant computer?

Yes. For multi-threading to work, the program must be designed to split
its work into separate pieces that may be done simultaneously, AND the
program must take special care that these separate pieces called threads
threads do not interfere with one another. If thread A changes data that
is being used in thread B, the program will yield nonsense. The whole
issue of data locking is very complicated. In any case as I said
earlier, merely running a single-threaded program on a multi-processor
system will never yield multi-threading. The best you can hope is that
at any instant, there can be as many single-threaded programs running as
there are CPUs.

> The system monitor in PCLinuxOS GNOME, analyzes and graphs both
> processors individually and in tandem.

run multiple copies of something like SETI or folding@home…

run one per core you have available and suddenly both (or 64 cores)
will all be processing in parallel two or more programs each at 100%
active…

but, if you just are watching one copy of a CPU charting program
watching X make windows…then you are NOT running “user code” which
is needing or using the full benefit of what you are trying to
understand…

try reading some at the Wiki:
http://en.wikipedia.org/wiki/Simultaneous_multithreading
and, etc…


palladium

Thank you for the reference. Since that is not casual reading for me, I’ve just begun and have begun reading about some of the blue words . . …

I remember many, many years ago my attending a small college and taking a course, Introduction to COBOL. The memory is very hazy. The college, then, didn’t have a computer lab, per se. My classmates and I would fill-in the appropriate boxes of the appropriate form with (what we hoped was) the appropriate data. Then the instructor would take our small class over to a local business that would let us use its key punch machines. We’d put rubber bands around our little stacks of punched cards and carry them in our shirt pockets. We thought of those as little programs. Which brings me to my next question: what’s a program?

Or let me rephrase that: “IF A PROGRAM IS WRITTEN AS A SINGLE THREAD, . .–” a what? Program? What do you mean?

It might be safe to say that the way you define “program” is not what I have in mind when I see the word. Is a program more like a sentence or more like an essay? Or a book? Of how many programs would an average package consist?

Randymanme wrote:
> Program? What do you mean?

your philosophical questions on the definition of a program do not
belong in this hardware forum…

i suggest you abandon this thread and post elsewhere, possibly in the
Programming/Scripting or General Chit-Chat forums…but, i’d say only
there if your questions pertain to openSUSE…

as far as i can tell so far your questions have been very generic in
nature and not at all restricted or pertaining to openSUSE…and,
this “what is a program” question is not even a Linux question…

the answer to your very generic question is probably in here
somewhere: http://en.wikipedia.org/wiki/Computer_program


palladium

If you’re running openSUSE 11.2 paralel booting is enabled by default if you have a multicore system.

It can be disabled via YaST > etc/sysconfig editor.
In the tree menu on the left side it’s found under System > Boot > RUN_PARALLEL

On 12/02/2009 05:16 AM, Randymanme wrote:
> Or let me rephrase that: “IF A PROGRAM IS WRITTEN AS A SINGLE THREAD, .
> .–” a what? Program? What do you mean?
>
> It might be safe to say that the way you define “program” is not what I
> have in mind when I see the word. Is a program more like a sentence or
> more like an essay? Or a book? Of how many programs would an average
> package consist?

This is my final posting in this thread! Every executable file in any
operating system is a program. To see the definition of a computer
program, see http://en.wikipedia.org/wiki/Computer_program.

To Axeia, thank you very much for answering my original question; I appreciate it. I found it at system>Yast>etc/sysconfig>boot>run parellel.

To palladium (or whomever), do feel free to move this thread to general chit chat. I wasn’t being philosophical so much as just trying to get the most out of what you said. Sometimes I need to ask a lot of questions before I can understand.

To lwfinger, that’s what I thought. I have to do Computer program - Wikipedia, the free encyclopedia piece meal, stopping here and there to look up other stuff therein. When I was last there, there were too many “trees” in that “forest” for me to go right to the one I was looking for, so I opted to just ask somebody.

To the chit-chat forum, How much does any of this have to do with a message that I’ve gotten from my computer (which I found quite cryptic upon first seeing it because it seemed so colloquial): “Uhh, too many forks, PIDs got reused, we’re confused . . . (?).” When I google “forking,” the Wikipedia seems to place a lot of emphasis on Unix and Unix-like. ”

As always, thank you very much for your time, technical expertise, and patience. You must be blue in the face by now. Sorry about that. I do appreciate your help.

Regards,

Randall

BUMP

ThreadWeaver - Wikipedia, the free encyclopedia

ThreadWeaver is a programming library developed for KDE 4 by Mirko Boehm that allows developers to easily take advantage of multi-core processors. In ThreadWeaver the workload is divided into individual jobs, then relationship between jobs ;…
en.wikipedia.org/wiki/ThreadWeaver - Cached

On 04/10/2011 06:06 AM, Randymanme wrote:
>
> BUMP
>

what/why are bumping?
do you have yet an unanswered question in this thread?
if so, i can’t find it…


CAVEAT: http://is.gd/bpoMD [NNTP via openSUSE 11.3 + KDE4.5.5 +
Thunderbird3.1.8] Can you believe it? This guy Ralph wins $181 million
in the lottery last Wednesday, and then finds the love of his life just
2 days later. Talk about LUCK!