|
Hi all,
I've been told that a single process can only use a single cpu in a multi-processor set up. Is this true?
I have some code which is highly cpu intensive and I want to make sure I use all available resources on a multiprocessor server. If this is true, I'll need to spawn two processes to do this (for a two processor server).
Comments/advice appreciated!
Regards,
Rob Philpott.
|
|
|
|
|
Untrue. The operating system - if we're talking about Windows or any UNIX with thread support - will schedule threads on any available processor [*]. If you want to make use of all processors in a machine, you need to make use of multiple threads, but additional processes are not required.
When dividing your processing across multiple threads, remember that you need to protect access to any shared data. Try to minimise the amount of shared data - whenever one thread is accessing it, if you're using locks, any other thread that needs to access it will end up waiting until the lock is released. A task that requires a lot of access to shared data structures probably won't be amenable to parallel processing.
[*] Not quite true. You can constrain the set of processors that a thread can run on by using an affinity mask, but generally it's better to allow the OS to pick any processor. Windows has a whole bunch of heuristics that control which processor a thread will run on and which threads run at any given time - for details see 'Windows Internals, 4th Edition' by Mark Russinovich and David Solomon (MS Press).
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
Thanks for this Mike,
Interesting stuff, and this is indeed good news. I didn't much like the idea of creating two processes to use two processors. I need to delve a bit deeper into this area. Apparantly what can also happen (I'm told) is when a single process is shared over two processors, both will only use 50% of their bandwidth serving it, so although the threads are split over two chips, the overall output is the same as just one running at 100%. Odd.
Regards,
Rob Philpott.
|
|
|
|
|
What you're describing is a process with a single thread. To get any significant speedup from a 2nd processor/core you need to write multithreaded code. WIthout doing it you'll see a minor 1 or 2% speedup since your app will have hte equivilant of a dedicated core it won't have to share with all the OS background activity.
|
|
|
|
|
Ah, this kind of makes sense. Although the app in question that exhibited the 50% split was multithreaded, I believe it was essentially a single-threaded-apartment model, where I guess the other threads are blocked outside the apartment. As you say, that explains the 50% split perfectly.
Thanks for your help Mike/Dan.
Regards,
Rob Philpott.
|
|
|
|
|
Hello all,
I'm in the middle of setting up a windows 2003 server for asp.net (with vb.net 2003) remote development/deployment.
The problem is that as soon as I install service pack 1 on windows 2003 I can no longer remotely develop asp.net apps with vs.net 2003. I have set-up servers with all the patches except service pack 1 and they work fine but as soon as I install service pack 1 it breaks the remote development of asp.net.
The error I get is that vs.net is "unable to add" files such as the project file (.vbproj) to the remote project.
I have made a screenshot of this error , it is at
http://www.matcmp.ncc.edu/error-after-sp1.jpg
I'm trying to upload via frontpage extensions.
I have double checked the IIS settings and front page extensions are enabled and so is asp and asp.net.
I know that one recommended way is to develop on local instance of IIS and then upload the project but this won't work in my case because this server is for a college class and students have to be able to work from home.
Thanks in advance for any help.
-Steve
|
|
|
|
|
Have you tried running the Security Configuration Wizard again? I think I remember somewhere that when SP1 is installed, Windows Firewall blocks all incomming connections until Post SP1 updates are installed from Windows Update. You might want to run the SCW to open up the firewall again.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Yes I tried SCW and it did not help, same error. I also tried installing all the updates, remaking the policy and applying it. Also tried disabling the firewall alltogether, same result.
Some files do get upload and the remote directory does get made but the error still occurs and the project can not be developed on.
|
|
|
|
|
You should check an information about key feature of windows 2003 sp1. Try to check windows server 2003 sp1 homepage[^] and look at the evaluation section to check about its key feature.
|
|
|
|
|
I've looked at that page and nothing usefull regarding this problem is there.
Are you referring to any specific "key feature"?
|
|
|
|
|
I have check your error message. Try to check this article[^] and let me know if its solve your problem or not.
|
|
|
|
|
No, the problems described in the above article are not occuring on my server.
|
|
|
|
|
|
|
Hi, when I try to log on to my windows 2000 laptop, it display a blue screen error. I try to logon many time but it is fail. Then i try to start in safe mode and successfully login. But when I check event viewer for the cause of an error, I found the following event:
Event Type: Information
Event Source: Save Dump
Event Category: None
Event ID: 1001
Date: 06/27/2006
Time: 9:41:18 PM
User: N/A
Computer: KANELLAPTOP
Description:
The computer has rebooted from a bugcheck. The bugcheck was: 0x0000001e (0xc0000005, 0xbfda17c0, 0x00000000, 0x00000000). Microsoft Windows 2000 [v15.2195]. A dump was saved in: C:\WINNT\Minidump\Mini062706-04.dmp.
I know that cause of the dump memory. And I also know that, when there was a dump memory user should send the dump memory file to Microsoft to analyse for the cause of the problem. But in this case, i already have the file but I don't know how could I send to Microsoft. Which website or e-mail address that I should send to Microsoft. Can any one help me or give me any solution that I could solve this problem?
|
|
|
|
|
It's a new feature in Windows XP and Server 2003 - Windows 2000 didn't know how to do it. I don't think Microsoft have made any kind of website available for sending memory dumps. Windows 2000 is pretty much end-of-life anyway so they're not really going to be interested.
If you want to try to analyse it yourself, install the Debugging Tools for Windows[^] and open the .dmp file with WinDbg (File/Open Crash Dump). The debugger will perform a quick analysis which should indicate which driver caused the problem. For a deeper analysis, run the !analyze -v command.
You may get better results if you set the debugger up to access Microsoft's debugging symbol server. See this page[^] for more on this.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
Mike Dimmick wrote: Windows 2000 didn't know how to do it. I don't think Microsoft have made any kind of website available for sending memory dumps. Windows 2000 is pretty much end-of-life anyway so they're not really going to be interested.
If you want to try to analyse it yourself, install the Debugging Tools for Windows[^] and open the .dmp file with WinDbg (File/Open Crash Dump). The debugger will perform a quick analysis which should indicate which driver caused the problem. For a deeper analysis, run the !analyze -v command.
Thank you very much for your comment. I will try to do it and to find our the problem. Thank you! Kanel
|
|
|
|
|
I'm planning to develop some software for Pocket PC in C# using .net 2005
The software must communicate with server on the PC through wireless.
Is that possible? I think it is, but I want to be sure before I buy PocketPC's.
Thanx in advance.
www.IP-sustavi.hr
|
|
|
|
|
Sure, so long as the PocketPC has networking capability. It'll work just like any Ethernet card in a Desktop PC.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Thanks. This helped a lot.;P
|
|
|
|
|
Lju2 wrote: I think it is, but I want to be sure before I buy PocketPC's.
Check the capability of this pocket PC[^].
|
|
|
|
|
Hello,
I have a server with Win2000 Server, which has two RAID harddisks mirrored. I guess one of the harddisks crashed, because when it boots i get the blue screedn with the error "BOOT_DEVICE_INACCESSIBLE". I tried to boot only from one harddisk, but it doesn't work. Since it's mirrored, i should be able to boot from the other harddisk and so i don't loose any data. My question is how to do that? Should i reconfigure some RAID options?
|
|
|
|
|
The version of that Stop message that I get alot around here is "INACCESSIBLE_BOOT_DEVICE". It's surprising easy to fix here, I don't know if this will work for you though.
Get out the Windows2000 Server Setup CD or the 4 Setup floppies. Boot the machine on that disk and continue until you get to Install or Repair an existing installation. Pick Repair, then pick Recovery Console. When it asks you to pick the installation you want to repair, just type 1 and hit [ENTER] to pick the only installed version. It'll ask you for the Administrator account password. You DO NOT have to enter it! Just hit [ENTER] 3 times and it'll tell you the login failed and the machine will restart. Great...just hit [ENTER] and pop the CD/Floppy out. Done! ... At least that's how it's fixed around here ...
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hi dave,
Thanks for your answer. Unfortunally, this way didn't work. Once i choose the Repair option, it can't find any installation of a Windows Server, so the only option i have is to cancel or to go back. That's why i can't get to the Recovery Console screen.
Take care!
Bogdan
|
|
|
|
|
What this message means is that once it gets to stage 2 of the boot process, it can no longer see the disk it's trying to boot from. This normally means that you need a boot-time disk/disk controller driver. However, this is something that doesn't normally stop working so I'm a bit mystified as to why it has. It's possible that you have (or someone else has) deleted NTBOOTDD.SYS. To restore, work out what driver you're using and copy it back onto the disk. It may be easiest to do a repair as Dave has suggested - you'll need the floppy that came with your RAID controller for Setup to be able to see the hard disks.
Another situation in which you might get this message is if you try to use a disk image built with different hardware to the one you're installing it on. In that case a repair is normally the only option if you want to continue with that image.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|