| 00:07.55 | brlcad | mac-: there is fairly extensive introductory material on the main website: http://brlcad.org |
| 00:08.17 | mac- | ok |
| 00:08.21 | brlcad | ah, oop.. thx louipc :) I should finish reading first.. |
| 00:08.28 | mac- | do you know any good CAD for Linux ? |
| 00:09.17 | brlcad | er, you mean other than brl-cad? |
| 00:09.26 | mac- | for drafting |
| 00:09.33 | brlcad | ah.. CADD |
| 00:09.38 | mac- | similar to AutoCAD |
| 00:10.06 | brlcad | the only readily available one is qcad |
| 00:10.22 | mac- | uhm |
| 00:10.43 | brlcad | (free at least) |
| 00:10.50 | mac- | i downloaded GraphiteOne, but i couldn`t launch it |
| 00:10.51 | brlcad | and with any production quality |
| 00:11.19 | mac- | and their support hasn`t reply for my questions |
| 00:12.47 | brlcad | ah, I don't follow the commercial products that closely, even less those specific to drafting, even further less those that aren't open source |
| 00:13.05 | brlcad | (sorry, just not our concern/interest) |
| 00:13.21 | mac- | ok |
| 00:13.24 | louipc | I saw one called FreeCAD on sourceforge, I haven't tried it yet |
| 00:13.57 | brlcad | freecad is mildly useful, but they're even farther from production quality than qcad |
| 00:14.03 | louipc | ouch |
| 00:14.55 | brlcad | it just really takes too much time to build up the foundation for a CAD or CADD or CAM system to achieve production quality for generalized use |
| 00:15.12 | brlcad | might find a tool or two specialized |
| 00:15.56 | brlcad | but freecad and qcad and pythoncad and others try to cater to common audiences, and have a excessively major hill to fight |
| 00:17.18 | louipc | yeah definitely |
| 00:17.44 | brlcad | that's one of the aspects where brl-cad shines -- even if you remove mged and the gui, there's roughly 100+ man-years of development |
| 00:18.40 | dtidrow_work | and at least 25 real years of development behind it |
| 00:18.59 | louipc | do you think you can achieve a professional level GUI with tcl/tk? |
| 00:32.04 | ``Erik | given the # of gui's professionally developed in tcl/tk... probably... |
| 00:46.17 | brlcad | louipc: you can, and even brl-cad's archer shows a lot of what is possible in terms of a better gui more in line with several of the professional system interfaces |
| 00:46.37 | brlcad | that said, our next generation gui probably won't be in tcl/tk |
| 00:53.56 | bjorkBSD | but ... i thought brl-cad *was* professional! |
| 00:54.21 | bjorkBSD | brilly wears a uniform no? |
| 01:00.38 | brlcad | a professional-quality gui? no, that's one of the things it does lack .. in production professional use with professional-quality engine facilities, yes |
| 01:02.23 | bjorkBSD | what will the next gui be in? |
| 01:03.54 | bjorkBSD | in the beginning was the CL, and lo, man took one look at the CLI and thought it was bad. and man created the mouse to eat the CL but verily verily i say unto ye, the CLI served as a useful barrier to entry and kept the waifs away :D |
| 01:08.40 | louipc | @brlcad what are you considering for the next GUI? |
| 01:10.14 | louipc | bjorkBSD: hehe I find the CLI can actually be more efficient if you know what you're doing, and it is well designed |
| 01:12.11 | bjorkBSD | yeah. i hear vista's reintroduced it :D |
| 01:12.38 | bjorkBSD | as far as command line completion goes. |
| 01:12.54 | louipc | oh tab completion? |
| 01:13.15 | bjorkBSD | something like that. i saw it in a youtube video |
| 01:13.36 | louipc | I've heard bad things about vista, and not from windows users nonetheless |
| 01:13.37 | bjorkBSD | ... they've had it in iexplorer for ages, but it seems it's use has been broadened. |
| 01:14.21 | louipc | I tried XP because a linux user said it was the best thing since 3.1 or something. That didn't last for me hah. |
| 01:14.32 | louipc | bad things... *and from windows users... |
| 01:14.46 | louipc | typo |
| 01:14.50 | bjorkBSD | hehe |
| 01:15.08 | bjorkBSD | i have a windows partition i reboot to every now and then. |
| 02:21.32 | *** join/#brlcad bobbens (n=bobbens@84.16.237.134) | |
| 04:44.31 | Maloeran | Could anyone tell me what's the common memory and processing models within HPC clusters? I received from a non-programmer by email information that conflicts with my assumptions |
| 04:44.39 | Maloeran | Keywords to wikipedia would do too |
| 04:46.16 | *** join/#brlcad PrezKennedy (n=Matthew@c-69-138-68-160.hsd1.md.comcast.net) | |
| 06:36.10 | brlcad | louipc: the CLI is not going away in the least and would actually be more a part of the foundation to the interface (e.g. anything you could do in the gui would be exposed on the cli and vice-versa) |
| 06:39.55 | brlcad | it would be just more of a focus on designing a gui that actually works, is efficient, more consistent, is readily pluggable, and not nearly as much of a bear to maintain/improve as mged's is |
| 06:41.41 | Maloeran | Nevermind the question about cluster processing, Mark had some... weird ideas on the topic :) |
| 06:43.43 | brlcad | most custom designs in general with data localized/replicated in-core or is spread across some out-of-core storage and loaded as needed |
| 06:48.24 | brlcad | most don't have shared process spaces or shared address spaces, but often have shared storage (but not always) so it usually boils down to whether disk memory is sufficient or whether to optimize replicaton/distribution over some communication pipe like tcp sockets, mpi, pvm, etc |
| 06:49.30 | Maloeran | Shared address spaces, that exists? |
| 06:49.44 | Maloeran | It goes against all I know, but it was what Mark apparently assumed |
| 06:50.42 | brlcad | there's a few systems that do, some experimental, some more production |
| 06:51.54 | Maloeran | Woah... but.. |
| 06:52.38 | Maloeran | If the memory address space is shared, it must be a single system made of multiple processors ; you have one memory bank |
| 06:53.07 | Maloeran | It wouldn't be too reasonable to get a page fault for every memory access and synchronize with other processing nodes constantly |
| 06:53.35 | brlcad | not necessarily -- the kernel is simply written/geared towards managing the memory |
| 06:53.51 | brlcad | that's the whole idea around single shared image systems in general |
| 06:54.03 | brlcad | mosix is probably the most popular/common one that you might have heard about |
| 06:54.06 | brlcad | or openmosix |
| 06:54.19 | brlcad | ahh, here's some references http://en.wikipedia.org/wiki/Single-system_image |
| 06:54.35 | Maloeran | I really don't see how this could possibly work |
| 06:55.07 | Maloeran | The only way for the kernel to know what memory is being modified or accessed is to trigger page faults |
| 06:56.18 | brlcad | they do work ;) |
| 06:56.27 | brlcad | to varying degrees of coolness |
| 06:56.33 | Maloeran | Do you have any idea how, briefly? |
| 06:56.44 | brlcad | mosix gets away with it by simply migrating processes to balance load |
| 06:56.45 | Maloeran | How can they track what's being read or written to synchronize the data? |
| 06:56.58 | Maloeran | Yes, they can migrate processes, but they won't share address space |
| 06:57.09 | Maloeran | You couldn't get shared memory between processes |
| 06:57.15 | brlcad | right, that's why they're only a partial SSI |
| 06:57.42 | brlcad | there is still one shared address space, but it's no bigger than the smallest single system's available memory |
| 06:58.07 | brlcad | which isn't entirely true .. but a simple enough simplification |
| 06:58.13 | Maloeran | How can they possibly synchronize that memory? |
| 06:58.57 | brlcad | they don't really need too -- the process moves with it's memory |
| 06:59.49 | Maloeran | Yes, yes, moving processes around is fine. Now, let's say you have process A on the box M and process B on the box N. The two processes have 160mb allocated as shared memory which they use to communicate |
| 07:00.14 | Maloeran | How are they going to manage and synchornize that memory between the two nodes? |
| 07:00.53 | brlcad | that's the entire question behind just how do you do SSI |
| 07:01.00 | brlcad | each of those ssi projects goes about it a different way |
| 07:01.05 | *** join/#brlcad clock_ (i=clock@84-72-63-172.dclient.hispeed.ch) | |
| 07:01.22 | Maloeran | I see no other way than constant page faults, which would make performance crawl |
| 07:01.25 | brlcad | some are compiler mods coupled with specific kernels that are fed information about memory access |
| 07:01.55 | brlcad | just because you can't imagine it doesn't mean someone else hasn't :) |
| 07:02.14 | Maloeran | I know that, but I'm asking how it works! :) I guess I should do some reading |
| 07:03.24 | brlcad | well, you might also be thinking shared memory == shared address space and it doesn't |
| 07:03.33 | brlcad | at least not necessarily |
| 07:04.07 | brlcad | whether you even can write C code on a lot of those systems is not possible -- some are very customized academic projects |
| 07:04.24 | Maloeran | brlcad, the box M needs to "know" when the process A writes within the shard memory, so it can update it on box N |
| 07:05.00 | Maloeran | Okay, Mosix doesn't support shared memory |
| 07:05.07 | brlcad | with shared memory -- sure, and there's ways a kernel could be written to propagate that |
| 07:05.19 | brlcad | yes, mosix doesn't |
| 07:05.59 | brlcad | it does process migration in a unified process address space |
| 07:05.59 | Maloeran | The kernel must be told by the processor that writes occur to begin with ; that implies a page fault |
| 07:06.29 | brlcad | implies a "fault" of some sort .. whether memory is managed in pages is an assumption in itself |
| 07:06.55 | brlcad | whether that maps to hardware fault is yet another |
| 07:07.33 | Maloeran | Right, of course so. What I'm trying to say is that page faults, specifically assuming ia32/amd64 hardware, would cripple performance |
| 07:08.08 | brlcad | i believe openssi actually does shared memory across a unified address space |
| 07:08.17 | brlcad | though I haven't looked into how they actually achieved it |
| 07:09.04 | brlcad | hey, you can't get it all for free -- if you're going to be accessing memory across a network link, performance is going to be crippled no matter how creative you get |
| 07:10.05 | brlcad | i mean you're talking the difference of a couple clock cycles to a few nanosecs at best |
| 07:10.34 | brlcad | which is of course...several orders |
| 07:10.49 | brlcad | the fact that it'll even do it (and do it automatically) is what's amazing |
| 07:11.12 | brlcad | just getting it to work at all has been something groups have been working on for longer than I've been alive :) |
| 07:11.19 | Maloeran | I'm asking this because Mark had the assumption that clusters could share memory address space, running threads over the processing network, which is of course incorrect |
| 07:11.34 | Maloeran | But I thought there could be some weird cluster architecture I wasn't aware of |
| 07:12.04 | brlcad | nobody does individual thread-level yet afaik .. even mosix only does process-level |
| 07:12.16 | brlcad | though openssi does thread-group migration iirc, one step closer |
| 07:12.59 | Maloeran | I don't know if it's really amazing, it's absolutely horrible by design :) |
| 07:13.21 | brlcad | openssi might be what he was thinking .. or mosix for that matter and he really just meant unified address space instead of shared and running processes over the network instead of threads |
| 07:13.38 | brlcad | horrible?? |
| 07:13.58 | Maloeran | If you want to distribute processing over a network, just write the software as such |
| 07:14.18 | brlcad | some of those systems are nearly optimal for doing exactly that |
| 07:14.18 | brlcad | with zero effort on your part |
| 07:14.53 | Maloeran | Without shared memory, I still need to handle I/O between processes, I haven't gained anything |
| 07:15.39 | brlcad | perhaps, or maybe you have an application that is already well-designed to not have that assumption or need for interprocess communication |
| 07:15.59 | brlcad | you're making a ton of assumptions about what matters, assumptions that don't hold for a lot of cases |
| 07:16.37 | Maloeran | Right, I should clarify : I'm thinking about distributed processing for a single problem, not running 100 distinct processes |
| 07:17.09 | brlcad | it also depends on the nature of the problem itself of course |
| 07:17.38 | brlcad | if you have a problem that can be independently parallelized, it can likely also be independently distributed seamlessly |
| 07:18.10 | brlcad | (with a given architecture (software and hardware) |
| 07:18.25 | Maloeran | True, but then there isn't much to gain from "apparently" running the 100 processes "locally" rather than booting them on the 100 boxes. It's a bit easier to manage surely |
| 07:18.56 | brlcad | whether there's much to gain depends on the problem too :) |
| 07:19.03 | brlcad | something short-lived, yeah, not much gain |
| 07:19.15 | brlcad | something like the life of your rays, yeah not much gain |
| 07:19.32 | brlcad | something that took minutes/days/weeks to process.. it'd be incredibly useful |
| 07:19.37 | Maloeran | I see the point but it's really a matter of convenience, an user could start the processes on the other boxes "manually" too |
| 07:19.57 | brlcad | sure, but then I could have done that anyways.. |
| 07:20.12 | brlcad | the point of the cluster is to do that stuff for you with the least effort |
| 07:20.46 | brlcad | sometimes that least effort is by custom coding or using mpi or it's by going with a different cluster architecture that does things for you |
| 07:20.56 | Maloeran | Right, so it's a matter of convenience, I realize that |
| 07:21.04 | brlcad | most of the popular (massive) clusters don't do SSI |
| 07:21.17 | brlcad | i think HP's cluster tech does, but nobody else |
| 07:21.34 | brlcad | everyone else predominantly is geared towards mpi |
| 07:23.07 | brlcad | that's what the network cards are optimizing for, the network stacks, etc.. if you want to efficiently scale up to 10k processors and not have to worry (as much) about bottlenecking yourself with interprocess/thread communication, mpi can help (even as heavy as it can be otherwise) |
| 07:24.15 | Maloeran | Yes, MPI is a neat abstraction layer, I won't contest that :) |
| 07:24.58 | brlcad | course if your problem can take advantage of 10k processors or even 1k easily.. then there's not much advantage to be had by the alternative of custom coding some network layer yourself to avoid mpi's (variable) overhead .. even a "2x" savings on something that takes two weeks to compute isn't that interesting |
| 07:26.25 | brlcad | because those are generally problems that are entirely intractible/unfeasible/useless on smaller supercomputers |
| 07:27.44 | brlcad | it's still "at least a couple years" out before I'll be able to do a full-blown fluid dynamics simulation on a dual quad-core workstation to say the least.. ;) |
| 07:28.16 | Maloeran | :) Seems I'll have a chance to try that out soon |
| 07:28.50 | brlcad | full-blown valid-physics down to something like millimeter accuracy at least |
| 07:29.01 | Maloeran | I have only read documentation and code about MPI, I'll try to move on from TCP/IP soon |
| 07:29.23 | brlcad | there are tons of simplifications that can be made on an fluid problem to get them to work on workstations already |
| 07:29.51 | Maloeran | I'll probably get to rewrite SURVICE's fire simulation soon ( fluid dynamics ), it's really filled with simplifications |
| 07:29.53 | brlcad | MPI isn't "great" .. it's been so painful to achieve adoption because the API is a pita |
| 07:30.36 | brlcad | but it's like democracy .. it's not great, but it's the best to have been conceived, adopted, and popularized to date |
| 07:30.37 | Maloeran | The API of MPI seemed appropriate for its purpose... I may think differently when I get to use it |
| 07:30.48 | brlcad | it's gotten tons better |
| 07:31.43 | Maloeran | I was baffled by how slow SURVICE's fire modelling was, especially when I heard how much they simplified the problem. Never let engineers write code, in Fortran 77 too |
| 07:37.52 | Maloeran | If I may, how much is there to lose by using MPI over more tailored specific solutions, for software running on 1-4 nodes or so? |
| 07:52.58 | brlcad | mpi for 1-4 nodes is frankly pointless -- that could just as easily be a command line option for that few nodes |
| 07:55.06 | brlcad | --run-on="node1, node2, node3, node4" etc.. fork a master than remote execs to the nodes or something else .. heck of a lot simpler code and trivial to manage the communication between them without worring about a major bottleneck |
| 07:56.42 | brlcad | it's only once it's over like 16 that it starts to get "hard" imho and things start to matter |
| 07:57.38 | brlcad | how much you loose depends on lot on how many MPI calls you make and how much interprocess/thread communication is going on (which you generally want to minimize of course as much as possible) |
| 07:58.59 | brlcad | compared to strait-up custom tcp, I've seen the mpi overhead be as low as only a couple percent to being a couple hundred |
| 08:00.05 | brlcad | the main benefit of course being that tcp was easy to write for smaller counts of nodes .. but quickly doesn't scale for larger and larger node counts where mpi scales considerably better and doesn't have to be maintained/debugged/tweaked |
| 08:45.18 | *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch) | |
| 14:04.08 | *** join/#brlcad docelic (n=docelic@212.15.185.210) | |
| 15:30.07 | Maloeran | Thanks for the reply, brlcad, I was asleep by then |
| 15:39.28 | ``Erik | mal: have ya read up on 'numa'? |
| 15:39.52 | Maloeran | Sure, some time ago |
| 15:40.39 | ``Erik | hrm, didja forget it? :D (given your conversation before you went to bed, I'd assume...) |
| 15:40.53 | Maloeran | We should store a whole copy of geometry and graphs per memory bank, and have specific threads access it... but I haven't read about the software interfaces to do so |
| 15:41.15 | ``Erik | it's a cluster form with a unified memory space on several independant nodes, each with its own cpu and memory... |
| 15:41.16 | Maloeran | The discussion wasn't really related to NUMA, it was about distributed processing over multiple nodes |
| 15:42.10 | Maloeran | The count of processors in such a design is kept very low, is it not? Up to 16 for an octo-dual-opteron |
| 15:42.24 | ``Erik | an altix is a numa cluster of small single cpu ia64 machines using sgi's numalink to get unsucky bandwidth between 'em and a hacked up suse to handle processor and memory affinity |
| 15:43.15 | Maloeran | That's one single machine though, not a cluster |
| 15:43.23 | ``Erik | no, it's a cluster |
| 15:43.51 | ``Erik | if I walk up to one, it's a bunch of seperat 2u machines, I could pull the numa cables off the back, put in a hard drive and install an os on that one machine |
| 15:44.21 | ``Erik | http://www.gup.uni-linz.ac.at/information/hardware/altix350_front.jpg |
| 15:44.24 | Maloeran | Do opteron clusters work the same way? |
| 15:45.15 | ``Erik | it doesn't matter what the cpu is, it depends on the kernel and interconnect (using something like ethernet would make it absolutely horrible) |
| 15:46.04 | Maloeran | So the Opteron clusters Mark spoke of do have an unified memory space? |
| 15:46.06 | ``Erik | the opteron clusters I have are not numa, they're regular ethernet tcp/ip nodes, each with independant kernels that don't try to assume anything about eachother, and a single disk attachment |
| 15:46.16 | ``Erik | I don't know which clusters mark spoke of... :) |
| 15:46.56 | Maloeran | So opteron clusters do exist having a global memory address space by NUMA? |
| 15:47.32 | ``Erik | I would be surprised if they didn't *shrug* like I said, what cpu it is and NUMA are unrelated |
| 15:48.35 | ``Erik | I could take a stack of old 486's running 10baseT and hack up a numa kernel for 'em... it'd suck, but it's doable |
| 15:48.39 | ``Erik | or, heh, numaPIC :D |
| 15:48.50 | Maloeran | It's certainly not running on a standard motherboard then! |
| 15:49.05 | ``Erik | sure it is... numa is a kernel hack |
| 15:49.32 | Maloeran | NUMA is a hardware solution |
| 15:49.32 | ``Erik | ok, if you miss on level1 cache, it goes to level3... if it misses there, maybe it goes to memory... if it misses there, it goes to swap, right? |
| 15:49.51 | Maloeran | That's not a kernel solution until it misses memory and trigger a page fault |
| 15:49.52 | ``Erik | shove 'other nodes' inbetween memory and swap, that's numa |
| 15:50.03 | ``Erik | no, numa is a kernel hack that lets you fake unified memory |
| 15:50.08 | ``Erik | NUMALink is a hardware solution |
| 15:50.09 | Maloeran | A page fault per memory access is not practical |
| 15:50.22 | ``Erik | yeah it is, IF you have a low latency interconnect |
| 15:50.36 | ``Erik | which is what NUMALink is... sgi's proprietary interconnect, designed with numa archs in mind |
| 15:51.01 | Maloeran | You would spend 50000 times the processing time of *one* memory-accessing instruction to handle that page fault! |
| 15:51.08 | ``Erik | ib and myra could probably do it semi-decently if your kernels scheduler was very aware of affinity |
| 15:51.40 | ``Erik | the trick is that migrations are minimized... if a processor is happily using 1 node, it'll try to keep it on that node... |
| 15:51.56 | ``Erik | if two apps are sharing memory, it'll bias towards running both of those on that one node |
| 15:52.50 | ``Erik | (and accessing another nodes memory, if you're using a decent interconnect (like NUMALink for the altix) may be an order of magnitude slower than local memory, but is several orders better than swap |
| 15:52.52 | ``Erik | ) |
| 15:53.16 | Maloeran | I see, so it does work by page faults |
| 15:53.42 | ``Erik | if the underlying arch does, I'd imagine it'd have to |
| 15:54.15 | Maloeran | NUMA as implemented in an Opteron system is really fast, memory banks bound to other processors are just a bit slower if the hypertransport link is not saturated |
| 15:54.19 | ``Erik | (also; a common use of supercomputers isn't to run one really really big app, but to run a bunch of sorta big apps) |
| 15:54.27 | Maloeran | That's usually what I refer to by NUMA |
| 15:54.59 | ``Erik | you're talking about hypertransport and how it can facilitate numa, not numa |
| 15:55.12 | ``Erik | hypertransport is just a fast interconnect... |
| 15:55.40 | ``Erik | if the kernel is stupid about using it, it'll 'page fault' through to the other cpu's memory banks frequently... no? |
| 15:56.00 | Maloeran | No, it doesn't page fault |
| 15:56.04 | Maloeran | It's a hardware solution :) |
| 15:56.19 | ``Erik | ok, *shrug* then they have both in hw |
| 15:56.26 | Maloeran | The hardware physically routes queries to the memory of other processor banks |
| 15:56.38 | ``Erik | on an sgi altix, afaik, it's a fault and request... and surprisingly fast |
| 15:56.50 | ``Erik | on mosix, it's a fault and request... and depends on the interconnect |
| 15:57.15 | ``Erik | hum |
| 15:57.35 | ``Erik | so it's an mmu hack that requires use of the hw 'task' vectors? |
| 15:57.49 | ``Erik | <-- not versed in hypertransport, is old :) |
| 15:58.33 | Maloeran | The pages are assigned to other memory banks, I guess it's managed as such by the MMU |
| 15:59.10 | ``Erik | well, you have to manage the memory location by task... if the hw does that, you have to tell the hw when you're in a certain task... |
| 15:59.17 | ``Erik | (task as in intel speak for process) |
| 15:59.20 | Maloeran | It's just one big memory bank really, it's just that processors are faster to access their local one |
| 16:00.33 | ``Erik | (as in hypertransport, not hyperthreading) |
| 16:01.30 | ``Erik | hm, works on packets that're either flagged "posted" (for uma and dma) or "nonposted" (for numa)... |
| 16:08.25 | Maloeran | Perhaps proper management of the memory banks, DMA? |
| 16:09.11 | ``Erik | not sure, lots of bit manipulation, probably to make the bank/process association to retain coherency |
| 16:10.06 | ``Erik | linux has a metric assload more than fbsd, mebbe that's why the single process run on a linux opteron outran the same run on a fbsd opteron |
| 16:10.59 | ``Erik | ooh, damnit, now I wanna do kernel hacking to improve the cpu and memory affinity on that quad opteron |
| 16:11.28 | dtidrow | heh |
| 16:11.37 | Maloeran | I can't believe a NUMA system which would page faults for every access, requesting the data before resuming the instruction, could perform comparably to software fetching the data in advance as one big chunk |
| 16:11.39 | ``Erik | stupid raytracer crap |
| 16:12.00 | ``Erik | well, the "page fault" may not call a cpu interrupt, it may be completely hw abstracted and fast *shrug* |
| 16:12.48 | ``Erik | but the os still has to manage the mmu *shrug* it may just be that the interconnect keeps a duplicate copy of the kernels notion of what memory resides where |
| 16:13.10 | Maloeran | I see. |
| 16:14.41 | ``Erik | (per ghz, opteron running 85k rays/sec, g5 at 45k, ia32 at 18k... damn) |
| 16:15.57 | ``Erik | (well, one opteron was 85k, the other was 60k... r12k was 31k, usII was 30k, ia64 at 41k) |
| 16:16.19 | Maloeran | librt this is? |
| 16:16.23 | ``Erik | ja |
| 16:16.49 | ``Erik | the 64 intel amd64 (used to be called EMT or something?) came in at 25k |
| 16:17.24 | ``Erik | oh, with the ia32, 18k for linux, 32k for fbsd... |
| 16:17.58 | dtidrow | in other words, librt is optimized for fbsd |
| 16:18.06 | ``Erik | these are all 'per ghz' on machines with radically differnet cpu speeds and no attention paid to bus speeds or anything, btw |
| 16:18.22 | ``Erik | well, on the opteron, linux came in at 85k where fbsd was 60k |
| 16:18.58 | dtidrow | guess linux has the better memory management inplementation on opteron |
| 16:19.05 | ``Erik | makes me think that it's not an artifact of librt being optimized one way or another, but the OS... amd64 is immature on amd64, but kickin' on ia32 |
| 16:19.27 | dtidrow | fbsd, you mean? |
| 16:19.35 | ``Erik | I think the memory mgmt is all an upfront hit with pools being used, ... |
| 16:19.37 | ``Erik | er, yeah, sorry |
| 16:19.52 | ``Erik | amd: linux>fbsd. ia32: fbsd>linux. |
| 16:20.18 | dtidrow | heh, another reason for me to get AMD :-) |
| 16:20.36 | dtidrow | anyway gotta head in to work - later all... |
| 16:20.41 | ``Erik | later, dude |
| 17:23.23 | *** join/#brlcad bobbens (n=bobbens@84.16.237.134) | |
| 18:51.46 | ``Erik | numa is an abstract idea, not a specific implementation... |
| 19:31.44 | Maloeran | Oh hrm. Erik, I briefly mentionned we debated cluster architectures in an email, and he asks, what's your "recommendation"? :) |
| 19:32.02 | Maloeran | I guess he means TCP/IP vs MPI vs NUMA-aware pthreads |
| 19:32.21 | Maloeran | In the context, "he" being Mark |
| 19:36.52 | brlcad | numa-aware pthreads is generally part of single-image systems, not clustering .. otherwise saying "red vs blue vs duckies" |
| 19:37.52 | Maloeran | Altix clusters, for example, have an unified address space though, which means that NUMA-aware threads could reasonably work |
| 19:39.36 | brlcad | there are massive altix smp and clusters of massive altix smp |
| 19:40.14 | brlcad | the clusters don't have a unified address space, altix is cool because it's smp and not a cluster in itself |
| 19:40.51 | Maloeran | All right, that clarifies the definitions. So it's a 512 processors SMP NUMA system |
| 19:41.07 | brlcad | yes |
| 19:41.51 | brlcad | and that'll be quite a price tag at that size to say the least |
| 19:42.02 | ``Erik | <PROTECTED> |
| 19:42.26 | brlcad | pretty much only find those systems at HPC assets (which ARL does happen to have, the MSRC) |
| 19:42.34 | ``Erik | altix is numa, not smp... |
| 19:42.50 | brlcad | altix is numa and smp |
| 19:43.14 | ``Erik | meh, numa is a memory layout, not a cpu scheduling layout, so *shrug* |
| 19:43.59 | ``Erik | but duckies, ... duckies are awesome |
| 19:44.06 | ``Erik | (ever watch 'ze frank'?) |
| 19:44.12 | brlcad | daily ;) |
| 19:44.29 | brlcad | ze frank |
| 19:44.38 | brlcad | ze frank is pretty awesome |
| 19:45.15 | ``Erik | it's on my daily list, too, along with sbemail and the comic page and smacksnot |
| 19:46.01 | archivist | hmm smacks not or smack snot |
| 19:46.18 | ``Erik | smack snot |
| 19:46.25 | ``Erik | aka crack rock |
| 19:46.40 | ``Erik | sometimes slashdot, by the unitiated or sufficiently confused |
| 19:50.14 | brlcad | Maloeran: maybe watch some of these for starters: http://www.zefrank.com/theshow/ then click on "popular shows" on the left |
| 19:50.54 | ``Erik | heh, then blow a solid week watching the entire archive *cough* O:-) |
| 19:51.21 | archivist | I wont be able to read slashdot without the thought smack snot going through my head now |
| 19:51.42 | ``Erik | *bow* |
| 19:52.03 | ``Erik | that's a good thing, right? you'll be able to do something productive, instead? |
| 19:52.28 | archivist | wot hell no |
| 19:54.23 | CIA-5 | BRL-CAD: 03erikgreenwald * 10brlcad/misc/Makefile.defs: punty "depends" target |
| 19:59.52 | ``Erik | nothing :) |
| 20:00.00 | ``Erik | there'll be a bigarsed commit in a few |
| 20:00.19 | brlcad | hrm |
| 20:00.22 | ``Erik | but, as the regex.h issue remains, my testing of it is incomplete |
| 20:01.09 | ``Erik | I don't think tcl's regex stuff can be easily removed, it looks like it's use in the symbol resolving functions, as well as in the file routines |
| 20:03.38 | brlcad | i didn't mean remove the regex code, just the files themselves -- or do you mean they're #including .c files or something? |
| 20:04.03 | ``Erik | <-- finds himself going into dirs in the appropriate dep chain order and doing make by hand to get the lib or bin he wants, thinks it'd be keen if he could go where he wants and do "make depends all" |
| 20:04.20 | brlcad | ahh |
| 20:04.23 | brlcad | yeah, that would be useful |
| 20:04.31 | ``Erik | not including .c files, but generic/regex.h is used several places in generic/*.c |
| 20:04.34 | brlcad | i do the cd dir dir dir blah foo too |
| 20:05.14 | brlcad | i think only folks that understand how automake works are generally inclined to do that, but hey that's cool |
| 20:05.18 | ``Erik | it might be best to mv regex.h regex_tcl.h and sed 's/regex\.h/regex_tcl.h' *.[ch] |
| 20:05.38 | brlcad | might also just get away with -DVOID=void |
| 20:05.52 | ``Erik | I'd do it to what we have now, but I ASSUME you're close to committing a new tcl |
| 20:05.57 | brlcad | the more I looked at it last night, the more it looked like it was empty |
| 20:05.59 | ``Erik | that won't be the only thing broken, just the first |
| 20:06.20 | *** join/#brlcad clock_ (i=clock@84-72-63-61.dclient.hispeed.ch) | |
| 20:06.31 | ``Erik | unless generic/regex.h just happens to have all the meat of /usr/include/regex.h and it happens to use the same define values and stuff |
| 20:07.21 | ``Erik | well, commit it up, yo... even if it's busted, we could split the load and both go about fixing... *shrug* |
| 20:11.36 | ``Erik | in a branch if ya want *shrug* I'll sync to a branch |
| 20:13.46 | brlcad | commit what up? |
| 20:13.59 | brlcad | -DVOID=void? |
| 20:14.48 | brlcad | still working on finishing this 8.5 testing/building, trying to get subconfigures to work reliably |
| 20:17.07 | dtidrow_work | http://tinyurl.com/3cx56e - good grief |
| 20:17.39 | dtidrow_work | the excessively accesorised toilet |
| 20:19.12 | archivist | lacks a lectern for a heavy book |
| 20:19.24 | brlcad | hrm.. by that math |
| 20:22.09 | brlcad | it's saying the average person spends 11862 hours per day in the bathroom (presumably on the toilet) .. which is roughly 30 minutes a day |
| 20:22.58 | ``Erik | per day? |
| 20:23.31 | ``Erik | heh |
| 20:24.02 | brlcad | i know some people that .. er .. take forever, but then they have "issues" too afaik |
| 20:24.16 | brlcad | well yeah, that depends what all is included |
| 20:24.28 | brlcad | the article makes it sound like you spend all that time on the john |
| 20:25.05 | dtidrow_work | heh - women spend at least 1.5hrs a day in the bathroom, then |
| 20:25.06 | archivist | for a good stiff sh.. the a good read is needed |
| 20:26.45 | brlcad | i never got that, i'm in and out every time -- there's no by the time I finish a couple sentances, it's over |
| 20:27.16 | ``Erik | need something to tear pages out of if there's no tp *shrug* |
| 20:28.13 | dtidrow_work | clearly ``Erik belongs to the church of vi |
| 20:28.24 | ``Erik | yes, the vim sect |
| 20:31.05 | CIA-5 | BRL-CAD: 03erikgreenwald * 10brlcad/src/ (13 files in 13 dirs): beginnings of DEPS flags for "make depends" chaining. |
| 20:46.34 | brlcad | ahh |
| 20:48.28 | ``Erik | ? |
| 20:49.47 | brlcad | instead of (re)listing the dependencies.. they're already listed in a couple places |
| 20:50.27 | brlcad | you could parse over the libadd/ldadd stuff, or peek at the _DEPENDENCIES vars or peek in the .deps dirs and build up that directory list automatically |
| 20:51.08 | brlcad | so you don't have to maintain a separate list that'll eventually be out of sync when someone adds a new lib and doesn't notice the DEPS var |
| 20:51.29 | brlcad | it'd always be perfectly in sync |
| 20:51.39 | ``Erik | spoze I coulda tried that, and did sed-fu to strip it down *shrug* but if I did that, then people who're over-verbose in attaching libraries would cause a LOT of duplicate computation |
| 20:52.16 | ``Erik | <-- already annoyed with the amount of replication of computation with the hand-minimized list |
| 20:53.22 | brlcad | replication? |
| 20:54.56 | ``Erik | yeah... if I do 'make depends' in, say, mged... rt->bn->bu->tcl, tk->tcl, so tcl gets two passes |
| 20:54.58 | brlcad | if you need to rebuild mged and be portably sure, it's got to walk the dependency hierarchy for each ldadd lib .. |
| 20:55.28 | brlcad | hmm.. sounds like you need to build up the list of what to do before actually doing it |
| 20:55.38 | ``Erik | I was half tempted to give each dir an "am I built?" target and stopping if that's yes |
| 20:56.00 | ``Erik | that's one way, but to be portable across makes, ... :/ |
| 20:56.56 | brlcad | sure across makes |
| 20:56.56 | brlcad | you do the same traversal you have in depends now .. but make it do two walks .. just not runnning depends on the first walk |
| 20:57.52 | ``Erik | mebbe in the future... |
| 20:58.39 | brlcad | it is, but the hooks they provide should make it work |
| 20:58.47 | brlcad | i fixed a handful of things, there still another problem? |
| 20:58.59 | brlcad | could have disabled more, but I tried to only disable minimal |
| 20:59.07 | ``Erik | how'd you disable it? |
| 20:59.31 | brlcad | Makefile.am cppflags to turn stuff on/off |
| 21:00.05 | brlcad | right |
| 21:00.15 | brlcad | i commited a fix for that yesterday |
| 21:00.18 | ``Erik | libdm/dm_obj.c |
| 21:00.25 | ``Erik | I updated today, it's still breakin' O.o |
| 21:00.27 | brlcad | at least I thought I did |
| 21:00.43 | ``Erik | (also don't remember seeing a cia msg) |
| 21:01.19 | brlcad | huh, that's odd |
| 21:02.05 | brlcad | hrm, maybe the commit errored/timed out and I didn't notice |
| 21:03.58 | brlcad | ahh, yeah, something happened |
| 21:03.59 | brlcad | M pngconf.h |
| 21:04.17 | brlcad | probably queried for a pass and I didn't notice or something |
| 21:06.29 | ``Erik | that's the included png... I'm trying to use the system png |
| 21:07.14 | ``Erik | like guard the setjmp in bu.h and make sure png.h is included before bu.h |
| 21:07.27 | CIA-5 | BRL-CAD: 03brlcad * 10brlcad/src/other/libpng/pngconf.h: disable the linux setjmp.h double-inclusion protection (at least for now) on the assumption that we will get the same setjmp.h and this won't be a problem. add a note that this was modified by us for BRL-CAD. |
| 21:07.38 | ``Erik | since the png fucktards can't figure out how to guard headers right *cougH* |
| 21:07.46 | brlcad | pngconf.h is installed on the system? |
| 21:08.03 | ``Erik | yes$ ls -l /usr/include/pngconf.h |
| 21:08.03 | ``Erik | lrwxrwxrwx 1 root root 18 Aug 11 12:34 /usr/include/pngconf.h -> libpng12/pngconf.h |
| 21:08.24 | ``Erik | rhel64 on an opteron |
| 21:08.47 | ``Erik | shuffling headers and gaurding in bu.h sound about right? I can take care of it while you do tcl |
| 21:09.05 | brlcad | could work it out so that png.h is just included before our stuff -- it should be actually |
| 21:09.13 | ``Erik | 'k, I'll go about that |
| 21:09.17 | ``Erik | hurry up and finish tcl :D |
| 21:09.32 | brlcad | common.h -> system headers -> public interface headers -> private headers |
| 21:09.37 | ``Erik | so i can unhack regionfix.c and proe-g.c on my thing |
| 21:09.42 | brlcad | png.h is a system header |
| 21:10.18 | brlcad | another fix would be to just set -DPNG_SETJMP_NOT_SUPPORTED |
| 21:10.31 | brlcad | and it skips it altogether |
| 21:12.13 | CIA-5 | BRL-CAD: 03erikgreenwald * 10brlcad/src/libdm/dm_obj.c: pull system headers up ahead of our headers |
| 21:14.24 | CIA-5 | BRL-CAD: 03erikgreenwald * 10brlcad/src/canon/png-ipu.c: pull system headers up ahead of our headers |
| 22:02.23 | *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net) [NETSPLIT VICTIM] | |
| 23:37.14 | louipc | more |
| 23:37.20 | louipc | erk |