Shamil Salakhetdinov
shamil at smsconsulting.spb.ru
Sat May 22 18:28:55 CDT 2010
Hi Jim -- Yes, "fork", but before that was IBM360, which has had special hardware and operation system software to handle Input/Output channels, multiplexing console input etc. - and when that special hardware has been working for input/output CPU was idle, and could have been used by other application processes - AFAIKR even PL/1 has had some function calls to start and handle long running "independent" threads within a running process/task, but starting an independent task that wasn't possible on application programs level (?) for IBM360 MFT and MVT OSes, and in mid-1970-ies, the next IBM OS, MVS, has got multi-processor systems support they say: well that all was very expensive that times of course and not broadly available as nowadays multi-core mass market computer systems but all nowadays Parallelism and Multi-Threading concepts were mainly developed during that "ancient" times: and then came MS and has been keeping us in "preemptive multitasking" "straitjacket" for almost 20 years - was that good, bad, necessary and inevitable MS-driven "moderation and control" for technology mass market to mature?... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence Sent: Sunday, May 23, 2010 2:04 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Parallelism Hi Shamil: Since the first Unix system added the command 'Fork' there has been parallel processing... (http://en.wikipedia.org/wiki/Fork_(operating_system) Yes, it could have very well been the 60's Jim -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Shamil Salakhetdinov Sent: Saturday, May 22, 2010 12:44 PM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Parallelism Hi Jim -- Thank you for your remark. Yes, I suppose I do realize the difference between multi-threading and Parallelism. And I suppose I do use both here in my everyday development: - Parallelism can be implemented by using multi-threading (long running threads usually performing conceptually different tasks) but it can be also implemented by running independent processes... - Multi-threading is usually treated as multiple short-living threads/-sub-processes running within one process, and often performing conceptually the same tasks, at least most of the threads of a multi-threaded application... Both Parallelism and Multi-threading can be implemented on one CPU provided independent processes or threads have some waiting/idle time - waiting for some external events to happen/tasks to be processed - that concept exists since IBM 360 MFT OS times (early 60-ies?)... Both Parallelism and Multi-Threading are getting mainstream nowadays when one process, which can't be "paralleled" on one CPU system because it has no "external events" to wait, can now be split into several sub-processes/threads to be scheduled to run on several CPUs/cores available within one computer - that's new for mass market PCs, but this concept of Parallelism/multi-threading is rather old coming from supercomputers - CRAY and CDC there, and Elbrus here (also 60ies AFAIKR)... Please correct me if I'm wrong. What's so new with "the new Parallelism" you mentioned? What am I missing? - Let's define this discussion thread context: I do not mention "neural networks" and "clouds" here - we are talking within context of one physical unit having several CPUs/cores and controlled by one operation system instance, correct?... Thank you. -- Shamil -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence Sent: Thursday, May 20, 2010 1:50 AM To: 'Discussion concerning Visual Basic and related programming issues.' Subject: Re: [dba-VB] Parallelism Hi Shamil: Please note that the lecturer gave a very strict line of difference between multi-threaded applications and the new Parallelism... they are very different in coding, deployment and performance. It now appears that the preparation of coding will now take twice as long but it appears to be the only way to be able to get full performance from our new multi-cored computers. I understand that some Linux systems manage the Parallelism within their kernels so a new application may not see as great as performance advantage as on a Windows OS... but some List members may have far greater insight, on this subject, than I do. I had previously sent an email to Tiberiu Covaci asking for some clarification on the points and differences and as soon as I hear a reply, I will share that information. Jim <<< snip >>>