Berkeley CSUA MOTD:2008:May:02 Friday <Thursday, Saturday>
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2008/5/2-5 [Uncategorized] UID:49873 Activity:nil
5/1     My professor mentioned the frobenius norm in class, but it it sounded
        like 'pro-penis norm.'  Took me forever to figure out what he was
        trying to say.
        \_ Stop day-dreaming about your boyfriend, bro.
2008/5/2-8 [Computer/SW/Compilers] UID:49874 Activity:low
5/2     How do I get the L1/L2 cache size and cache line size on my machine?
        Can I find this stuff out at compile time somehow?
        \_ You aren't planning on running your code on any other processors?
        \_ May I ask what it is you want to achieve ultimately? If you don't
           know your architecture and want to find out dynamically, there are
           tools that can peek/poke to give you definitive answers, plus you get
           to see the latency of L1/L2/memory and infer a lot of info like
           cache associativity. Prof Saavedra has done a lot of cache benchmarks
           and micro measurements.                              -kchang
           tools that can peek/poke to give you definitive answers, plus you
           get to see the latency of L1/L2/memory and infer a lot of info like
           cache associativity. Prof Saavedra has done a lot of cache
           benchmarks and micro measurements.                           -kchang
           http://citeseer.ist.psu.edu/saavedra95measuring.html
        \_ No, there isn't a simple way, compile time or not. Your common
           user oriented desktop compiler today doesn't know anything
           about L1/L2 besides knowing how to do proper register allocation
           and in most cases don't even do a good job of spilling, knowing
           about cache effects, etc. Now, there is a lot of research in
           the past 20 years where compilers for specialized applications
           will optimize vector computing, tight loops, unrolling based
           on known monotonicity of variables, specialization, and allocate
           memory access patterns all based on memory locality (L1/L2),
           but you're not going to get that type of optimization from
           gcc or M$ compiler.
           the past 20 years where compilers will optimize vector computing
           and allocate memory access patterns based on L1/L2, but you're
           not going to get that from gcc or M$ compiler.
           \_ That's unfortunate.  Is there some program I can run to find
              out?  /proc/cpuinfo tells me, "cache size : 4096 KB", but doesn't
              give L1, or line size.  Is that just the data cache?
              (This is an Intel Core2 )
        \_ What the hell does "at compile time" mean?
           \_ I mean, perhaps there is some built in constant I can use
              that gives the L2 cache size of the machine you're compiling on.
              \_ You mean for a POSIX C++ compiler?  Also do you not expect
                 your code to be run on any other machine?
                 \_ Nope, this is purely an optimization test for 1 machine.
                    I guess if there's a way to find out the sizes dynamically
                    that's ok too.
                    \_ What I'm saying is that "compile time" doesn't mean
                       shit.  Compile time + what language/compiler you are
                       using might mean something.
                       \_ Language: C, C++, or Fortran.  Not picky
                          Compiler: gnu, intel, or portland.  Not picky.
                          OS: Linux.
                    \_ If it's just for one machine, why don't you just look
                       up the specs at Intel or AMD's website?
                       \_ I think I'd have to know more about the CPU than I
                          do.  Also, it would be nice to be able to recompile
                          it on other machines for comparison.
                          \_ Then you probably want to look into a CPUID
                             utilities (or roll your own simple version if
                             you just want simple cache info), along with
                             preprocessing of some sort. However, cache size
                             and line size are spelled out pretty clearly in
                             specs, so you don't have to know all that much.
                          \_ Someone considerately overwrote my post here,
                             so to recap, look into a cpuid utility +
                             preprocessing.
2008/5/2-8 [Computer/SW/Languages/Java] UID:49875 Activity:nil
5/2     I'm out of school. What's the best link to self learn stuff like
        k-means, clustering with gaussian mixtures, gaussian bayes,
        EXPECTATION MAXIMALIZATION, EM convergence, inference engine,
        classifier, desnity estimator, regressor, etc?
        \_ Start with wikipedia, follow links.
           \_ Uh, no. This is not the kind of stuff you can learn
              from wikipedia.
              \_ Take the first item.  K-means.  It described the basics
                 and had pretty informative links to outside sites.  Some
                 of those links have references to books to read/other places
                 to look.  Wikipedia is not a place to learn, but it's a
                 damn good place to start, esepecially for computer stuff.
                 The real answer is "find a highly recommended textbook,
                 buy it and read it." but you were clear about wanting
                 an online resource.
        \_ Go back to school and take a course or two. If you are going
           to put in the work you may as well get credit for it. Also,
           the structure and ability to ask for help are plusses.
           \_ What good is a course credit or two to someone who already has
              a long and successful career?  He wants to learn a few specific
              topics.  He should buy a book or find an online tutorial and
              read the parts that matter to him.  He may (or may not) stumble
              into other interesting things that would've been covered in a
              class and without the hassle of class.
              \_ Many Master's programs are only about 8 classes so 2
                 classes and you are already 25% of the way there. I know
                 lots of people with PhDs even who went back for an MS or
                 even more than one MS. Like I said, if you're going to
                 put in the work you may as well get the credit. Put
                 another way: Why *not* take classes? What's the advantage
                 to avoiding class other than cost, which may not be an
                 issue if work pays for it?
                 \_ Because learning a few specifics from a book/article is
                    a hell of a lot less effort than taking a class, doing
                    homework, being there at specific hours several days a
                    week, kissing some instructor's ass for the "A", paying
                    fees (poss. covered by work as you noted), having your
                    learning slowed down by the inevitable time wasting
                    morons in class, etc, etc.  If he wants to learn entirely
                    new branches of knowledge then sure take a class, but that
                    isn't what OP appears to be looking for.  I wouldn't
                    suggest someone take all of Math 1B if they only wanted
                    to learn Taylor's Series which can be learned in a few
                    hours at worst.  Some people are addicted to school, that's
                    fine, gather up all the dgrees on the planet if that's
                    your thing, other people just want to get work done.
           \_ I've learnt a hell of a lot post school without going back.
              Having a degree means you should know how to learn.  (Unless
              your problem is a lack of discipline.)
              \_ I didn't say you couldn't learn that way. I just don't
                 think it's the best way. Who do you ask for help when you
                 get stuck? Without exams how do you know that you really
                 "get it" or just think you do? Who helps you separate the
                 wheat from the chaff? I think every engineer or
                 programmer does a lot of self-learning. That's almost a
                 requirement. However, "knowing how to learn" isn't really
                 the issue here.
2008/5/2-8 [Politics/Foreign/Asia/China] UID:49876 Activity:nil
5/2     Does anyone know how to use the "Chinese (Hong Kong S.A.R.)" input
        method in XP?  When I select it, all I get are English characters.  I
        can't figure out how to bring up Chinese characters.  OTOH the
        "Chinese (Taiwan)" works fine on the same machine.  Thanks.
2008/5/2-5 [Computer/SW/Database] UID:49877 Activity:nil
5/2     SUNW (Sun Microsystems) buys MySql:
        http://www.mysql.com/news-and-events/sun-to-acquire-mysql.html
        \_ Umm, okay. Do you have a point to make? Did you notice the date
           on this is Jan. 16?
2008/5/2-8 [Recreation/Food] UID:49878 Activity:nil
5/2     Americana at Brand Opens in Glendale! Hooray!   -dimwit #1 fan
        http://ktla.trb.com/news/local/ktla-americana-brand,0,982049.story
Berkeley CSUA MOTD:2008:May:02 Friday <Thursday, Saturday>