After reading this post by Julia Evans, which considers CPU speeds somewhat more deeply than its title implies ("Computers are Fast"), a fragment from a recent conversation with one of my computer science professors came to mind.
Simply, and somewhat paraphrased: "almost all processes are rapidly becoming I/O-bound."
Not so long ago, in OS Design class, one homework and several questions on exams tasked us to carefully identify whether a process would be I/O-bound or CPU-bound based on its actions and properties. Would "I/O-bound" have consistently been the correct answer?
Not according to the professor of that class, at least, since I remember a few answers to the contrary. And I'd be willing to wager that there remain enough computationally-intensive tasks that OSs must take CPU-bound costs into consideration when scheduling processes, at least in some areas of work.
But might gains in speed, parallelism, and optimization eventually sway the balance?
My guess is yes -- but only for personal-computing tasks. For example, I've never personally run a highly complex physics particle simulator on a time-slotted supercomputer, but I'd bet most of that isn't too memory-heavy, especially compared to the insane number of calculations required (interesting note about reducing calculation cost).
And imagine how that is for some higher-order function, like prime factorization (well, I guess it's not officially known to be superpolynomial at this point). The time required to compute can be enormous, but space complexity doesn't need to be too bad (they're just integers, after all).
I'm curious to see how things turn out over the next few years. It's an exciting time to be computing! -- and when isn't it?
Content
academia
apt-get
article
bootstrap
bufferedwriter
business
centos
cheatsheet
code
coding
computer science
computers are fast
concurrency
cpu-bound
css
database
error
errors
examples
exercise
expansion
file
fix
functions
growth
hadoop
hadoop_classpath
hadoop_opts
I/O
issues
Java
Julia Evans
lambda
learning
linuz
map-reduce
market
menu
no such file or directory
nosql
operating systems
optimization
oracle
os
output
path
permission denied
problem
programming
programming with nothing
query
quick reference
read
regex
regular expression
relational databases
repeatable
ruby
scalable
scheduling
school
slick
software
software development
software properties
software ventures
solution
speed
SQL
startups
string manipulation
strings
style
tips and tricks
tom stuart
trouble
tutorials
ubuntu
unknownhostexception
vertical
web
web design
web development
wordcount
write
yum
No comments:
Post a Comment