Wikipedia:Reference desk/Archives/Computing/2011 March 12

From Wikipedia, the free encyclopedia
Computing desk
< March 11 << Feb | March | Apr >> March 13 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


March 12[edit]

RAM[edit]

Hello. I have a laptop with 2 GB of DDR2 SDRAM. I recently took is apart, and could only find one RAM card, labelled as 1 GB. I want to find out if this is a mislabeled card or if I have another card somewhere on the computer. How could I find out? Isn't there some sort of memory check you can do? It's running Ubuntu 10.10, if that's any help. --T H F S W (T · C · E) 02:50, 12 March 2011 (UTC)[reply]

Why do you think it has 2 GB ? StuRat (talk) 06:25, 12 March 2011 (UTC)[reply]
That's what the eBay seller said, and the system monitor and VMware Player say the same. Yes, I am sure it has 2 GB. Now how would I check my RAM? I downloaded a MemCheck for Windows and tried to use it with Wine, but it didn't work. --T H F S W (T · C · E) 07:17, 12 March 2011 (UTC)[reply]
I would search for a manual for the specific manufacturer and model of the laptop. e.g. "Acer ABCD-123-XYZ". Often you can find a PDF file that shows all the parts and locations. You can also run sysinfo, as described here. If you want to test the RAM, run memtest86+ (should be available in the GRUB boot menu or on a Ubuntu live CD). --LarryMac | Talk 13:22, 12 March 2011 (UTC)[reply]
Maybe the other 1GB is soldered directly on mainboard. (I had on such a laptop long time ago). -Yyy (talk) 13:24, 12 March 2011 (UTC)[reply]
What is the laptop model and operating system? ---— Gadget850 (Ed) talk 13:27, 12 March 2011 (UTC)[reply]
The BIOS should display the memory it has found during boot in its status screen (you may have to interrupt the boot process to see this). The Linux kernel displays the RAM it sees (which is almost always what the BIOS tells it exists) in /proc/iomem as System RAM (in hex; you'll have to do the math yourself). -- Finlay McWalterTalk 16:05, 12 March 2011 (UTC)[reply]
As to testing memory, a very commonly used free tool is Memtest86, which is present as an alternate boot option on the LiveCDs of many Linux distributions, or can be burned as a free-standing bootable CD of its own. -- Finlay McWalterTalk 16:07, 12 March 2011 (UTC)[reply]
An alternative: run sudo dmidecode --type 6, which lists all the memory devices that can be found on the System Management Bus; note that empty sockets (whether actual physical ones or logical ones that don't actually turn into a header on the motherboard) will still appear, but with "Installed Size" of "Not Installed". -- Finlay McWalterTalk 16:22, 12 March 2011 (UTC)[reply]
Both of my Thinkpad laptops had two memory slots in two unrelated locations, one easy to find and the other difficult. You should be able to find servicing instructions for the laptop online which will tell you where the slots are. An obvious way to test if there is another memory module is to try powering on the machine without the one you found. -- BenRG (talk) 03:50, 13 March 2011 (UTC)[reply]
Some laptops will have 2 memory slots. One is usually easily accessible via an access panel on the bottom. HP likes to hide the other one under the keyboard, which requires removing many screws, the LCD, more screws, and the keyboard.

WPA2-PSK 802.11g[edit]

Hello, My other computer was stolen in July of 2010. I recently got on wireless. I noticed that my computer was broadcasting it's unique name. On it's unique name I found the information in the subject line. I am trying to find out who the internet service provider is for the above information.

I believe the stolen computer is still in the apartment complex in which i am living. A police report was made at the time of incident. I want to make another one but I am trying to do the foot work so I can give the Internet Service Provider... — Preceding unsigned comment added by Meakahorse (talkcontribs) 02:51, 12 March 2011 (UTC)[reply]

A hostname has nothing to do with the internet service provider. You need the IP address or domain name (preferably the IP address). -- kainaw 03:16, 12 March 2011 (UTC)[reply]
I doubt that whatever you are seeing has any relation to your stolen computer. "WPA2-PSK 802.11g" is a standard method of wireless networking, far too common to single out a particular computer. Computers do not normally broadcast a unique name. Unless your computer was unusually configured, you are probably seeing the wireless network that you used with your previous computer, not the computer itself. -- BenRG (talk) 11:59, 12 March 2011 (UTC)[reply]
It's a little hard to know what you're actually seeing. Could you provide more information? There are unique features to some machines, most notably the MAC address. But it seems highly unlikely that you would see, let alone recognize that. More likely are programs that broadcast the PC name, which can include windows filesharing, and a number of mac daemons, in addition to other stuff, like itunes shares, etc.
It's possible, but probably unlikely. If you could tell us exactly where you're seeing this "broadcast" it would help. Shadowjams (talk) 03:25, 14 March 2011 (UTC)[reply]

Telephone Service Factor, How to do the calculation. Any formulae??[edit]

Telephone Service Factor, How to do the calculation. Any formulae?? This is specifically for call center useage.

logins across subdomains[edit]

Hey there.

I'm wondering, is it possible to set up a website such that a login "carries over" between subdomains?

The problem I'm having is that http://www.{domain.tld} and http://{domain.tld} are both valid addresses and return the same pages, but they don't redirect from one to the other.

So when someone accesses the website and logs in using the www.-address, and then clicks on a link to (or manually accesses) any page without the www-subdomain prefix, their login isn't recognized.

Would redirecting between the two address variants solve the problem? So that one of the variants is effectively removed since it always forwards to the other variant?

Thanks a bunch in advance! --87.79.112.135 (talk) 10:23, 12 March 2011 (UTC)[reply]

If your site's concept of "login" depends on http cookies, what you need is a cross-subdomain cookie. If I read this and this correctly, a cookie set with the domain .domain.tld (note the leading period) will be readable by all subdomains. I haven't tried this, and I'd be interested to know, if you try this, how you get on. -- Finlay McWalterTalk 15:52, 12 March 2011 (UTC)[reply]
Ok, thanks! I'm bookmarking your user talk page and will let you know how it goes (if it goes). --87.79.112.135 (talk) 16:03, 12 March 2011 (UTC)[reply]

Keeping my unsecured wireless connection connected[edit]

When out and about with my laptop I somtimes look for an unsecured wireless access point (WAP), particularly if the hotel charges outrageous fees for their own wireless internet (eg. €17/hour on one recent trip!). Unfortunately, my Windows Vista laptop has a tendency to drop the connection on some occasions. Maybe dropping the connection is related to the detection of a stronger signal from another WAP, even though that stronger signal comes from a secured WAP, but then again maybe this is unrelated. When first connecting to an unsecured access point, I note the warning about the connection being unsecured and choose "connect anyway", I do not choose the "save this network" option and if prompted I choose the "public location". Is there some other step I should take to ensure my laptop stays connected until I choose to disconnect (or someone throws me off :-)? Astronaut (talk) 12:32, 12 March 2011 (UTC)[reply]

Depending on your jurisdiction it might well be illegal to connect and use other peoples wireless connections without their permission. The Reference Desk will not help you commit crimes. 79.91.233.169 (talk) 13:46, 12 March 2011 (UTC)[reply]
  • Here's what Microsoft says about the issue:
It appears there is no way to globally stop Windows from switching to a stronger signal, you will probably have to apply the steps every single time you connect to a new access point. 87.79.112.135 (talk) 14:25, 12 March 2011 (UTC)[reply]

Perl, remove initial characters until string that matches argument is found[edit]

I don't do Perl at all, but am nevertheless trying to modify this script, to automate the conversion of a large number of Mediawiki-markup files to html. Here's what I've got now:

#!/usr/bin/perl

use lib ".";
use CGI qw(:standard);
use Text::MediawikiFormat;

my @userinput = <STDIN>;
my $wikimarkup = join('',@userinput);

# Do we have any work to do?
if ($wikimarkup)
{
   my $decoded = Text::MediawikiFormat::format($wikimarkup);
   # This is where I need help!
   $decoded =~ s/\303\270/&oslash;/g;
   $decoded =~ s/\303\245/&aring;/g;
   print <<EOF;
$decoded
  
EOF
}

exit(0);

What I would like to do next, is to remove the beginning of the string $decoded, which begins like this:

 <a name='PageTitle'></a><h1>PageTitle</h1>

such that everything until the first occurrence of <h1> is removed, i.e. I want every file that is processed by the script to start with <h1>. I suppose this is a one-liner, and would appreciate help on how to proceed. Thanks, --NorwegianBlue talk 15:02, 12 March 2011 (UTC)[reply]

I don't know the Perl syntax, but can't you just find the index of the first occurrence of the sought string (python calls this simply string.find) and then truncate the string from there. The python would be a[a.find('<h1>'):], surely Perl's version is yet more succinct. -- Finlay McWalterTalk 15:21, 12 March 2011 (UTC)[reply]
Which is substr($a,index($a,"<h1>")) in (probably highly unideomatic ) Perl. -- Finlay McWalterTalk 15:32, 12 March 2011 (UTC)[reply]
Note that both break if there isn't an h1 in the page (as both search functions return -1) -- Finlay McWalterTalk 15:42, 12 March 2011 (UTC)[reply]
Thanks!
$decoded = substr($decoded,index($decoded,"<h1>"));
did the trick. --NorwegianBlue talk 19:59, 12 March 2011 (UTC)[reply]
Indexing strings is generally unidiomatic in Perl, where strings are streams and indexing may be slow (for the same reason that seek and tell operations on a file opened in text mode may be slow). It would be more usual to do this with a regex, like so:
       $decoded =~ s/.*?(<h1>)/$1/s;
The other advantage of the regex is that it fails sensibly, by leaving $decoded unchanged and returning a false value that you can test in an if statement.
I notice that in s/\303\270/&oslash;/g; and the next line you're apparently matching against UTF-8 byte sequences. It would probably be better to convert the string to Unicode with decode_utf8 and match against the code point values (\x{00F8} and \x{00E5} in this case, or just \xF8 and \xE5). I'm sure there is a Perl module that will do these standard HTML entity replacements for you, as well.
In lieu of the intermediate @userinput array, there's a weird idiom for reading an entire file directly into a string that looks like this:
       my $wikimarkup = do { local $/; <STDIN> };
Finally, the print statement could be just print "$decoded\n\n"; instead of the multiline <<EOF construct. -- BenRG (talk) 03:40, 13 March 2011 (UTC)[reply]
Thank you! Now $decoded =~ s/.*?(<h1>)/$1/s; was more like what I was expecting the perl version to be like :-). Thanks also for the decode_utf8 advice. I'm keeping the multiline <<EOF construct because I need to insert html, head and body tags as well.
It turns out that what I really need to do, however, is to remove every occurence of <a name='Something'></a>, not just the one at the beginning of the string. Is there a regexp way to do this in perl? --NorwegianBlue talk 10:41, 13 March 2011 (UTC)[reply]
Found it':
$decoded =~ s/\<a\ name.*\<h/\<h/g;
does exactly what I need. --NorwegianBlue talk 13:39, 13 March 2011 (UTC)[reply]
Resolved

What does x >>> y do? I saw it here but couldn't find any information about it in Google, Yahoo or Bing. 82.166.216.211 (talk) 15:09, 12 March 2011 (UTC)[reply]

unsigned shift right. -- Finlay McWalterTalk 15:15, 12 March 2011 (UTC)[reply]

What is the H Drive[edit]

I've just noticed that in addition to my C:\ drive, I also have a H:\ drive on my PC, which appears to be a second hard drive. Is this the case or is it for something else specific? I discovered it by chance after copying something to my memory stick (on the J:\ drive) and choosing the wrong path by mistake. There's nothing saved on the H:\ drive at the moment, but I would welcome the extra space if it is a second hard drive. Thanks. 86.135.227.101 (talk) 16:19, 12 March 2011 (UTC)[reply]

Among other things, it could be a hard disk, a partition of a hard disk, a memory card reader, or a USB storage device. Of course, the disks and their designations vary between different PCs, so we cannot tell you how your PC is configured by the information given above alone. Here is what you can do: Right-click the drive and select "Properties" to see all its properties. If it is big (hundreds of gigabytes), it is probably a hard disk, or a partition of a hard disk. You can also use Disk Management to see all installed disks and their partitions. In addition, you can always open the case and look inside the computer. That way you can easily see the number of physical hard drives. By the way, are you sure that the disk works all the time? Sometimes memory card readers (many computers have a lot of them -- four, say) are shown even if there is no card inserted. --Andreas Rejbrand (talk) 16:57, 12 March 2011 (UTC)[reply]

If you have Windows 95 or 98, when a hard drive was compressed with DriveSpace on those operating systems a hidden "host drive" would be created with the drive letter h: 82.43.92.41 (talk) 17:05, 12 March 2011 (UTC)[reply]

Thanks for the suggestions. It is a Packard Bell Windows Vista 64bt system and the H:\ drive has around 141GB on it. I was able to retrieve the file I saved on that drive, and although no files are showing in the directory, Properties indicates that 94MB of space is occupied by something. Properties also gives its function as a DATA disk (C:\ is shown as DS which I assume is Disk Space) and its type as a Local Disk. I wouldn't want to attempt to open the unit as I'm not that technically minded, but I hope this information is helpful to anyone who can answer my query. Thank you. 86.135.227.101 (talk) 19:05, 12 March 2011 (UTC)[reply]
141GB is a bit large, but it might be a recovery partition containing Windows install files. Usually these are only 10GB or so though 82.43.92.41 (talk) 19:10, 12 March 2011 (UTC)[reply]
Thanks. Sounds like a possibility as C:\ is also showing up as a Local Disk, and also happens to be 141GB. Interestingly, I have a window open prompting me to make a back up of the factory settings about five minutes or so after switching on, so that must be where it would take the data on to make the disk. Going back to C:\ for a moment, C:\ says OS rather than DS (so that must be Operating System?). 86.135.227.101 (talk) 19:17, 12 March 2011 (UTC)[reply]
It sounds to me like you have a 300GB hard disk that was factory partitioned into two 150GB (=140GiB) volumes, with the intent that you should use the first one for the OS and the second one for personal files. If you don't need the space, you can ignore the second volume. Or you could use Logical Disk Manager to delete it and resize the first volume to fill all of the space. The 94MB of used space is probably NTFS system files. -- BenRG (talk) 03:56, 13 March 2011 (UTC)[reply]

date[edit]

In cmd on Windows, I can use

md %date:~-4,4%-%date:~-7,2%-%date:~0,2%

to create a directory with todays date as its filename. However the date stamp changes format on different computers depending on their regional settings. So I found a nice command line program which outputs the date in a standard format called "timestamp.exe". However I don't know how to make it function like the previous example. Using

md timestamp.exe

just creates a directory with "timestamp.exe" as its filename, not the date timestamp.exe outputs. What do I need to do to make it work? 82.43.92.41 (talk) 16:49, 12 March 2011 (UTC)[reply]

In the Bourne shell, on Unix-like systems, you can surround a command in backquotes to substitute the output of it. I don't have a Windows system convenient to try it on, but md `timestamp.exe` might work. Paul (Stansifer) 18:23, 12 March 2011 (UTC)[reply]
I tested, and it just included the backquotes in the filename :( 82.43.92.41 (talk) 19:12, 12 March 2011 (UTC)[reply]
Try this:
       for /f %i in ('timestamp') do md %i
Really, though, if there's any way you could use something other than cmd.exe for your programming, I would recommend it. Using cmd.exe is an exercise in unnecessary pain. (Likewise the Bourne shell, for that matter, though it's better than cmd.exe.) -- BenRG (talk) 04:03, 13 March 2011 (UTC)[reply]
That's perfect, thank you! What would you suggest I try using instead of cmd? 82.43.92.41 (talk) 11:33, 13 March 2011 (UTC)[reply]
Hmm, I might have posted too soon. That code works on the command line but doesn't work from a .bat file, which is very important 82.43.92.41 (talk) 11:47, 13 March 2011 (UTC)[reply]
I have a vague recollection that all percent signs need to be doubled up in Windows batch file, but not on the command line. (This only reinforces BenRG's suggestion. I'd suggest using bash under Cygwin.) Paul (Stansifer) 17:50, 13 March 2011 (UTC)[reply]

DVD +RW[edit]

Is there a limit to the number of times you can go through the cycle of burning erasing, burning erasing to a DVD+RW? Take it as a premises that the disk is treated perfectly, never smeared with grape jelly covered fingers or scratched. —Preceding unsigned comment added by 141.155.143.65 (talk) 18:06, 12 March 2011 (UTC)[reply]

For DVD+RW Imation says here says "1,000 cycles" (in the features tab). By way of (no) contrast, for DVD-RW Pioneer says "more than 1,000 times". -- Finlay McWalterTalk 18:16, 12 March 2011 (UTC)[reply]
Thank you. Good to know. I've been cycling the same disks and It occurred to me that there must be some actual physical change that must take some type of toll on the disk and I became curious.--141.155.143.65 (talk) 19:06, 12 March 2011 (UTC)[reply]

Apple Keynote: how to split presentation into sections, with section titles in header[edit]

Hello,

I am learning how to use Apple Keynote, and I find it has many options my usual Latex Beamer does not have for scientific talks.

However, I can't figure out how to do something in Keynote, which is relatively ease in Beamer: How can I partition my presentations in to groups of slides, in such a way that there is always a bar somewhere so viewers can see what part of the presentation is being shown?

Many frequent users of Keynote told me that they do not know such an option, but I seem to remember at least one Keynote-presentation where such a thing was used.

Many thank, Evilbu (talk)

You can visually sort your slides in the slide sorter, by simply dragging them to the right under another slide. However, that's about the extent of grouping you can do. It can't (that I know of) automatically give each group a title that is shown in the presentation. You could do it manually, but not automatically. I hope this is what you were looking for. — Preceding unsigned comment added by Thekmc (talkcontribs) 20:08, 12 March 2011 (UTC)[reply]
I do it manually quite easily. Just edit the master pages so that there is a bar with a text box at the top. You just change the text box whenever you want it to say something else. There is no way to make it automatically add section titles to a header. What you saw was surely something like this. --Mr.98 (talk) 22:35, 12 March 2011 (UTC)[reply]
Thanks for the responses. Editing the master pages seems like an efficient solution. However, if I would want to put all section titles on top of the slides, and let the title of the currect section be bold or in another colour, how could I do that? Keynote does not allow me to make changes in an individual slide.Evilbu (talk)
You can't do that with a master page that I know of. You could do it manually, by putting a text field on each page, and making the current section bold. That's one downside of Keynote. --Thekmc (talk) 20:01, 14 March 2011 (UTC)[reply]
You can make it so that the text on the master pages is editable on each individual page — I think the command is Format > Advanced > Define As Text Placeholder. That way you could make a generic colored box at the top, and then on each page just select it and change its color to whatever you want. That's probably the best you'll be able to get out of Keynote — it is not set up to do the thing you want it to do. In many respects it is fairly barebones (my personal gripe is the lack of text wrapping), though when compared to the morass of bloated "features" in Powerpoint, some (myself) find that to be a distinct advantage. --Mr.98 (talk) 01:14, 17 March 2011 (UTC)[reply]

Saving contents of an array to file (VB)[edit]

I want to save the contents of an array that I am building to a file on click. So far, I have been able to make it work by using a "Dialogue Box" and the name of the file is chosen. I would rather have it work so that the current date and time are utilized rather than having the user decide on a file name. I am not overly familiar with StreamWriter - which may be my issue. Here is what I have in the Save Records button:

Dim FileName As String
        If dlgFileSave.ShowDialog = Windows.Forms.DialogResult.OK Then
            'Capture the filename from the dialog box
            FileName = dlgFileSave.FileName
            'Open/create a file using the FileName the user has entered
            FS = New StreamWriter(FileName)
            'Set up a loop to process each element in our array of names
            For I As Integer = 0 To cararray.Length - 1
                'Pull each element out of the array and separate the elements with the delimiter character
                Recordtosave = cararray(I).carchoice & cararray(I).trimchoice & cararray(I).enginechoice & cararray(I).optionscontent & cararray(I).colourchoice
                'Write the record to the file
                FS.WriteLine(Recordtosave)
            Next
            FS.Close()
        End If
    End Sub

What must I change to allow the file to be saved with date/time and no user input into a dialogue box?24.89.210.71 (talk) 20:03, 12 March 2011 (UTC)[reply]

I've taken the liberty of formatting your code with the Mediawiki source tag, to make it easier for others to read -- Finlay McWalterTalk 20:44, 12 March 2011 (UTC)[reply]
Just get rid of the line starting "If dlgFileSave" and the "End If" line, and replace the FileName = with something like FileName = DateTime.Now.ToString().Replace(" ",""). That gets the current time, formats it as a string, and gets rid of the spaces. You could delete the .Replace bit if you want spaces in the date/time string.--Phil Holmes (talk) 11:36, 13 March 2011 (UTC)[reply]

settings for opening Web Page Blocked?[edit]

Web Page Blocked


You have tried to access a web page which is in violation of your internet usage policy.

URL: www.sbilife.co.in/ Category: Finance and Banking

To have the rating of this web page re-evaluated please click here.



Powered by FortiGuard. Tne notification written above are seen on many sites while I try to open . How can settings be changed so that sites blocked can be seen? —Preceding unsigned comment added by 220.225.96.217 (talk) 20:14, 12 March 2011 (UTC)[reply]

The network administrator of your organisation (I guess it's a company or educational institution) has installed FortiGuard's web filtering proxy, which is blocking the insurance company website you're trying to look at. You'll need to ask that administrator to remove that website from the filtering proxy's blacklist. -- Finlay McWalterTalk 20:43, 12 March 2011 (UTC)[reply]


If Google Translate is not blocked, you could try using that to view the blocked pages. Simply type the URL into Google Translate and press enter. You might also want to click on "display: original" in the upper right corner. I sometimes use this as a poor man's Proxy server. 93.95.251.162 (talk) 14:53, 15 March 2011 (UTC) Martin.[reply]

Fast PCs in the $5000 price range[edit]

To my horror, my super de luxe dual core bla bla bla computer (AMD processor, 2 HGZ) bought in 2009 is only about twice as fast as my antique Windows-98 computer bought in 1999 (500 MHZ processor). Of course, the former PC has much more RAM memory, so you can surf the web must faster with it. But when it comes to doing computations that can be done well within the 64 MB memory, the speed difference isn't that great.

I can make my computations run effectively 4 times faster by starting up two instances of my program simultaneously, each processing different part of the huge data set I want to process. Are there any commercial PCs with perhaps less than the, for me unecessary, 1 GB RAM memory, but one which is much faster? Count Iblis (talk) 22:11, 12 March 2011 (UTC)[reply]

What are you doing that's CPU-bound? There really aren't a lot of things people use computers for where RAM size is more important than CPU speed. CPUs are way way way faster than hard drives, so the primary concern is making sure the hard drive is needed as little as possible.
Anyways, processor speeds have hit a wall. It takes a signal passing through a certain number of transistors to execute an instruction, and transistors can't really be sped up. For the last twenty years or so (probably longer), increases in processor speed have come from executing multiple instructions at once. But since the semantics of machine language is to execute instructions in order, there's a limit to how many things can be usefully done at once (since working ahead involves guessing, and bookkeeping to deal with wrong guesses).
The solution is to split problems up into pieces and do them on separate processors. If you have an embarrassingly parallel problem, this is easy, and you can make it go faster by throwing more processors at it. Otherwise, it's an ongoing problem in computer science and software engineering to figure out how to make it faster. Paul (Stansifer) 23:51, 12 March 2011 (UTC)[reply]
My first thought is something is missing here. If everything else is equivalent, the AMD 2GHz should be much more than 2x faster than your ancient 500MHz computer. If you're saying a current gen processor with no RAM is twice as fast as doing large amounts of computations than an ancient processor with GBs of RAM, then ok, I can see that. And you need to provide much more details, such as if you're looking at single precision floating point calculations, which GPUs can calculate at much faster rates than your desktop CPU. And $5000 range? Did you mean $500? For $5000, you can build a decent array of PS3s. --Wirbelwindヴィルヴェルヴィント (talk) 01:04, 13 March 2011 (UTC)[reply]
What I'm doing is large amounts of computations that, per computation, involves only a few megabytes. Then, my impression is that the modern PCs with 1 GB of RAM are not optimal for this purpose, because to keep such PCs affordable, the speed of the RAM memory hasn't been increased a lot since a decade ago. What would be better for me would be to have smaller but faster RAM memory. Count Iblis (talk) 14:29, 13 March 2011 (UTC)[reply]
It's not about affordability, it's an honest-to-goodness technical limitation. Supercomputers are just big piles of ordinary components, working on data-parallel problems. It'd really help to hear what kind of computations you're doing; the way you describe it, it sounds trivial to parallelize and farm out to a bunch of cores, or even to a bunch of independent computers. Paul (Stansifer) 17:42, 13 March 2011 (UTC)[reply]
Are you writing to/from the HDD repeatedly in whatever you're doing? There must be something that's choking performance, and that's a pretty reasonable one; hard drives are faster now, but not enormously so. Is there anything else that it could be blocking on, like network input or something? -- Consumed Crustacean (talk) 21:29, 13 March 2011 (UTC)[reply]
You can't just drop fast RAM into a standard motherboard; everything else on the motherboard would also have to change. I think you're in the $100,000 or $1,000,000 range at that point. What you can do relatively cheaply (<$5000) is get an Intel Xeon or AMD Opteron-based machine, which will have more fast cache RAM than the home-user models. You will typically see a big jump in performance if your computation's working set size fits inside a cache level. Note that the largest cache level is shared among all cores, so if your working set is 4MB and you want to use all four cores of a quad-core Xeon then you will need at least 16MB cache. These chips are still disproportionately expensive for what you get, because they are one way that Intel and AMD segment the market. And they will only help if your computation really is RAM-bound and if the working set is small enough. -- BenRG (talk) 21:55, 13 March 2011 (UTC)[reply]

Thanks for this information! Paul, yes, the computations can be done on different computers. I'm computing determinants of large matrices containing large integers, exactly. The value of each determinant can be thousands of digits large. These determinants are then used by various Mathematica programs to solve a compicated physics problem. When I started with this, I was using Mathematica to also compute the determinants, but this became quite slow when the matrices became larger and larger. Obviously, using C, you can speed thing up relative to Mathematica, however, unless you use the most efficient methods to handle large integers, the gain will be compromized.

What I decided to do was to write a program that computes the determinants modulo some prime numbers and then use Mathematica to compute the determinants using the Chinese Remainder Theorem. This allows me to do the computations on different computers and use the two cores on the dual core computer. Count Iblis (talk) 15:51, 15 March 2011 (UTC)[reply]

If your 2ghz is only running your program 2x as fast per core as a 500 mhz machine of comparable architecture, that points to cache effects. I think lot of effort in current fancy numerical linear algebra packages goes into accessing the matrix elements in the right order (e.g. stepping through rows rather than columns) to get high hit ratios. There is a topic called cache-oblivious algorithms which studies handling these issues automatically, but it is pretty bleeding edge, and I think practical schemes involve tuning for particular architectures. Keep in mind also that some CPU models have larger caches than others, so you might get a speedup by just swapping out your CPU chip. As for spending $5000 to do fast numerics, the most raw MIPS per dollar will come from stream processors, e.g. Nvidia Tesla Personal Supercomputer. These need special software and algorithms that are still somewhat avant-garde, but gpgpu.org is a good place to find more info and discussion. I've followed the topic from a distance but have never programmed these things myself. 75.57.242.120 (talk) 01:39, 17 March 2011 (UTC)[reply]

I don't think we should read too much into the clock speed thing; different CPUs (even with the same architecture) may get different amounts done in the same clock cycle, due to pipeline stalls. A 2GHz is probably more deeply pipelined than an 0.5GHz machine, and so more vulnerable to them. Paul (Stansifer) 14:23, 17 March 2011 (UTC)[reply]