2007-07-31
Parallel Programming
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers
Barry Wilkinson
Parallel Computers
Concurrency vs. Parallelism
2007-07-27
Linux: The 0.01 Release
Sent to you by Alan via Google Reader:
"This is a free minix-like kernel for i386(+) based AT-machines," began the Linux version 0.01 release notes in September of 1991 for the first release of the Linux kernel. "As the version number (0.01) suggests this is not a mature product. Currently only a subset of AT-hardware is supported (hard-disk, screen, keyboard and serial lines), and some of the system calls are not yet fully implemented (notably mount/umount aren't even implemented)." Booting the original 0.01 Linux kernel required bootstrapping it with minix, and the keyboard driver was written in assembly and hard-wired for a Finnish keyboard. The listed features were mostly presented as a comparison to minix and included, efficiently using the 386 chip rather than the older 8088, use of system calls rather than message passing, a fully multithreaded FS, minimal task switching, and visible interrupts. Linus Torvalds noted, "the guiding line when implementing linux was: get it working fast. I wanted the kernel simple, yet powerful enough to run most unix software." In a section titled "Apologies :-)" he noted:
"This isn't yet the 'mother of all operating systems', and anyone who hoped for that will have to wait for the first real release (1.0), and even then you might not want to change from minix. This is a source release for those that are interested in seeing what linux looks like, and it's not really supported yet."
Things you can do from here:
- on KernelTrap - Linux news, FreeBSD news, OpenBSD news, NetBSD news, GNU/Hurd news, BeOS news, MacOS news, Tools, Windows news, Other news
- Subscribe to KernelTrap - Linux news, FreeBSD news, OpenBSD news, NetBSD news, GNU/Hurd news, BeOS news, MacOS news, Tools, Windows news, Other news using Google Reader
- Get started using Google Reader to easily keep up with all your favorite sites
2007-07-26
Schedule
2. 1 + 2 + 3 + ... + 999999 with pthreads method
3. Dividing the huge matrices into small parts
4. Redo last step with pthreads
5. Knowing how to manipulate icc
pthread
Native POSIX Thread Library (NPTL), getconf GNU_LIBPTHREAD_VERSION, NPTL 2.3.6
NPTL Trace Tool
IBM Linux Technology Library, Linux threading models compared: LinuxThreads and NPTL
2007-07-14
2007-07-13
2007-07-06
HPC Links
Z RESEARCH enables System Integrators, with little or no experience in clustering, to build Clustered File Storage, HPC Clusters and Supercomputers from Commodity off the Shelf Components (COTS) using Clustered architecture and Z RESEARCH'S software stack 'Gluster'.
amar, 可愛的網域。 :) 是一位印裔工程師。
Computer cluster
2007-07-05
e1000_request_irq: Unable to allocate MSI interrupt Error: -22
Links:
google://
dmesg eth0 e1000_request_irq Unable to allocate MSI interrupt Error: 22
wired ethernet interface missing
e1000 high latency problem, msi error on boot.
2007-06-22
OpenMP
HPCxTR0411 "OpenMP Microbenchmarks Version 2.0", Fiona Reid, Mark Bull
OpenMP Microbenchmarks page
Zahir, IBM eServer p690, p690+ et p655 (Regatta Power4)
Sparc 64 cross compiler
Jun 20 13:59:59 stutb genunix: [ID 540533 kern.notice] ^MSunOS Release 5.9 Version Generic_112233-08 64-bit
Jun 20 13:59:59 stutb genunix: [ID 943905 kern.notice] Copyright 1983-2003 Sun Microsystems, Inc. All rights reserved.
Crosstool build results
So that all failed!
2007-06-21
人家只是轉圖檔而已...
for i in `ls -1 *.jpg`;do (convert -quality 48 -crop +0-1000 "$i" tmp/"$i" &); done
如此而已就 :(
寫信來去論壇問看看
2007-06-20
Perldoc, Day 1
Using my in combination with a use strict; at the top of your Perl scripts means that the interpreter will pick up certain common programming errors. For instance, in the example above, the final print $b would cause a compile-time error and prevent you from running the program. Using strict is highly recommended.
類似 gcc -Wall
unless ( condition )
if (!condition)
Note that the braces are required in Perl, even if you've only got one line in the block.
Too bad
print "LA LA LA\n" while 1; # loops forever
Cool!!
A list of them is given at the start of perlfunc and you can easily read about any given function by using perldoc -f functionname .
You can read from an open filehandle using the <> operator. In scalar context it reads a single line from the filehandle, and in list context it reads the whole file in, assigning each line to an element of the list:
Reading in the whole file at one time is called slurping. It can be useful but it may be a memory hog.
寫的真傳神! hog *grin* :P
When you're done with your filehandles, you should close() them (though to be honest, Perl will clean up after you if you forget):
哈! 好笑! though to e honest. :P
if ($a =~ /foo/) { ... } # true if $a contains "foo"The // matching operator is documented in perlop. It operates on $_ by default, or can be bound to another variable using the =~ binding operator (also documented in perlop).
In [perlop.html],
Binary "=~" binds a scalar expression to a pattern match. Certain operations search or modify the string $_ by default. This operator makes that kind of operation work on some other string. The right argument is a search pattern, substitution, or transliteration. The left argument is what is supposed to be searched, substituted, or transliterated instead of the default $_. When used in scalar context, the return value generally indicates the success of the operation. Behavior in list context depends on the particular operator. See "Regexp Quote-Like Operators" for details and perlretut for examples using these operators.
If the right argument is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time.
Binary "!~" is just like "=~" except the return value is negated in the logical sense.
These are documented at great length in perlre, but for the meantime, here's a quick cheat sheet:
XDDD 快速騙人小抄 (quick cheat sheet)
while (<>) {
next if /^$/;
print;
}
我覺得寫的很美!
while ((c = get()) != NULL) {
printf ("%s\n", c);
}
http://cpan.stu.edu.tw/
第一次嘗試 CPAN install Bundle::CPAN 跑出一大堆鬼東西,看起來這個系統寫的很完整,也很大!
2007-06-19
PCMan, Day 1
Advice from the creator of C++
A Tour of C++
Procedural Programming
Decide which procedures you want; use the best algorithms you can find.
Modular Programming
Decide which modules you want; partition the program so that data is hidden within modules.
IBM Blade Center
Bjarne Stroustrup's homepage
Separate compilation is an issue in all real programs. It is not simply a concern in programs that present facilities, such as a Stack, as modules. Strictly speaking, using separate compilation isn't a language issue; it is an issue of how best to take advantage of a particular language implementation. However, it is of great practical importance. The best approach is to maximize modularity, represent that modularity logically through language features, and then exploit the modularity physically through files for effective separate compilation.