code logs -> 2013 -> Fri, 04 Jan 2013< code.20130103.log - code.20130105.log >
--- Log opened Fri Jan 04 00:00:38 2013
00:19 Orthia is now known as Reiv
00:42 You're now known as TheWatcher[T-2]
00:45 You're now known as TheWatcher[zZzZ]
01:08 Reiv is now known as Orthia
01:19 Derakon[AFK] is now known as Derakon
01:31 Thrae [ircuser@Nightstar-7fbd3546.fios.verizon.net] has quit [[NS] Quit: Restarting client or something...]
01:49 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Client exited]
02:02 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has left #code ["Leaving"]
02:04 Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [Ping timeout: 121 seconds]
02:47 ErikMesoy|sleep [Erik@Nightstar-be32adc8.80-203-17.nextgentel.com] has quit [Ping timeout: 121 seconds]
03:20 Kindamoody[zZz] is now known as Kindamoody
03:33 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: night all]
03:47 Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code
03:47 mode/#code [+ao Derakon Derakon] by ChanServ
04:33 syksleep [the@Nightstar-7d752098.lnk.telstra.net] has quit [Ping timeout: 121 seconds]
04:40
<&Derakon>
https://github.com/munificent/vigil
04:40
<&Derakon>
"Infinitely more important than mere syntax and semantics are its addition of supreme moral vigilance. This is similar to contracts, but less legal and more medieval."
04:40
<&Derakon>
"Often, a function will require that parameters have certain desireable properties. A function in Vigil can state what it requires by using "implore". If a caller fails to provide valid arguments, it is wrong and must be punished."
04:40
<&McMartin>
Linked that earlier today
04:40
<&Derakon>
Ah, I missed it.
04:41
<&McMartin>
It's pretty pro
04:41
<&McMartin>
Keep reading if you haven't finished yet
04:41
<&Derakon>
I'm working my way through.
04:41
<&Derakon>
...yep.
04:42
<&Derakon>
Every program can eventually be reduced to one line of code, that doesn't work. And then Vigil will delete it.
04:43
<&Derakon>
Hee. And when it runs, it appends a comment to the end of the source file with the crimes committed by various functions.
05:28
<~Vornicus>
that's 103% batshit
06:31 ErikMesoy [Erik@A08927.B4421D.FE7332.A86588] has joined #code
06:53 Derakon is now known as Derakon[AFK]
08:46 Kindamoody is now known as Kindamoody|out
09:14 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
09:20 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: ]
09:21 Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code
09:28 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
09:28 mode/#code [+o himi] by ChanServ
09:33 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
09:54 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
09:54 mode/#code [+o himi] by ChanServ
10:01 Thalass is now known as Thalass|werk
10:05 Thalass|werk [thalass@Nightstar-724ec5eb.bigpond.net.au] has quit [[NS] Quit: asplodey]
10:07 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
10:11 You're now known as TheWatcher
14:52 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
14:52 mode/#code [+o celticminstrel] by ChanServ
14:53
<@iospace>
huzzah, broke the board!
14:55
<@Tamber>
Let out the magic smoke?
15:10
<@iospace>
no
15:10
<@iospace>
broke the BIOS
15:11
<@Tamber>
oops
15:11
<@iospace>
(intentionally of course)
15:11
<@Tamber>
oh
15:12
<@iospace>
yeah :P
15:35 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds]
16:10 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
17:23 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
17:26 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
17:26 mode/#code [+o Courage] by ChanServ
17:29 ErikMesoy1 [Erik@Nightstar-be32adc8.80-203-17.nextgentel.com] has joined #code
17:29 ErikMesoy [Erik@A08927.B4421D.FE7332.A86588] has quit [Ping timeout: 121 seconds]
18:45 Kindamoody|out is now known as Kindamoody
18:54
< ErikMesoy1>
Help, my mother has bought Windows 8. Yes, I know I should secretly replace it with Ubuntu and rename things :-P, but she's also bought a copy of Microsoft Office Professional Plus Pwhatever and I think there are limits to how much stuff I can switch without her noticing. What should I do to retain my sanity?
18:54
<@Tamber>
Run away.
18:54
<&McMartin>
What do *you* have to do with it?
18:55
< ErikMesoy1>
I have familial obligations.
18:57
<&McMartin>
...to...
18:57
<&McMartin>
Like, are you also going to be a primary user or what
18:57
<&McMartin>
Or just required to help troubleshoot
18:58
<&McMartin>
"Use the Desktop mode all the time, it's basically Win7 but not quite as good, and Not Quite As Good As Win7 is actually still Very Much Pretty OK"
18:58
< ErikMesoy1>
Troubleshoot. I have my own computer.
18:58
< ErikMesoy1>
I guess I'll see about putting shortcuts to everything on the desktop, then, to avoid the Ipod Mode.
18:58
<&McMartin>
Well
18:59
<&McMartin>
The ipod mode start screen is actually pretty OK, and stuff in the start menu tends to Just Show Up Where You Need It if you use it alot.
18:59
<&McMartin>
If it doesn't, just start typing and it does the Win7 spotlight-a-like thing.
18:59
<&McMartin>
Except better, because for whatever reason, all imitations of spotlight are better than the original
19:00
< ErikMesoy1>
"stuff in the start menu" - how do I get that back?
19:00
< ErikMesoy1>
It has a power button where the start menu used to be, and no "Classic Mode" or anything on the start panel.
19:01
<@Tamber>
You don't, IIRC.
19:01
<&McMartin>
Wat
19:01
<&McMartin>
The power button is in the lower right
19:01
<&McMartin>
The start menu is in the lower left
19:01
< ErikMesoy1>
This Windows 8 has a power button in the lower left.
19:01
<&McMartin>
o_O
19:01
<&McMartin>
OK
19:01
< ErikMesoy1>
(in desktop mode)
19:02
< ErikMesoy1>
The lower left *single pixel* goes to the start *panel*.
19:02
<&McMartin>
In the Windows 8 *I* used clicking the lower left kicked you to the Start Screen
19:02
<&McMartin>
Yeah, it was a larger target when I used it
19:02
<&McMartin>
I'm saying the start panel is an improvement, with two caveats
19:02
<&McMartin>
(a) I use spotlight for damn near everything
19:03
<&McMartin>
(b) What I don't use spotlight for I use via the automatically maintained "recently used" buttons, and upping that from 4 entries to like 32 is a strict improvement in my book
19:03
<&McMartin>
In your setup I guess I suggest using the Windows key, but you might be able to convince yoru mom to put that power button shift-over thing on the right side instead where it was on my stock Win8 install
19:04
<&McMartin>
Having it on the right side is also better because IIRC that's where the wireless-connectino menu goes
19:04
<&McMartin>
That is different from Win7 but I can't meaningfully call it better or worse because it's just a wireless connection menu
19:11 Kindamoody is now known as Kindamoody[zZz]
19:15
< ErikMesoy1>
Thanks.
19:15
<&McMartin>
If you're mostly going to be troubleshooting you're actually not in much trouble
19:15
<&McMartin>
Win8 under the hood is just a minor release on top of Win7
19:16 ErikMesoy1 is now known as ErikMesoy
20:38
<@Pandemic>
Windows 8 does have some improvements in infromation output of taskmanager
20:38
<@Pandemic>
I'll give it that much
20:39
<&McMartin>
The file-copy dialog is pretty neat too, with real-time performance graphs
20:40 * Pandemic likes real time performance graphs
20:40
<@Pandemic>
now if we could just get installers to use them......
20:40
<@Pandemic>
>.>
20:42
<&McMartin>
hmmm
20:42
<&McMartin>
I bet the NSIS CopyFiles command (which forwards to shell copy) would end up inheriting that
20:42
<@Pandemic>
hrm.... an interesting idea
20:42
<@Pandemic>
I do have a windows 8 test box I could monkey around with.
20:43
<@Pandemic>
now all I need is time to do said monkeying
20:47
<&McMartin>
Note that CopyFiles is relatively rare in installers; normally an NSIS installer instead decompresses data out of its own executable and just writes it directly to the target location.
20:48
<@Pandemic>
point
20:58 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
21:34 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds]
21:36 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
21:36 mode/#code [+o Alek] by ChanServ
22:02 * ToxicFrog returns from campus, where the other half of his defence committee has been unstinting with praise regarding the thesis
22:02
< ToxicFrog>
I'm feeling pretty good right now.
22:06 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
22:09
<@TheWatcher>
\o/
22:16
< ToxicFrog>
He said it was one of the best written theses he's ever read and he's greatly enjoying it.
22:25
< ErikMesoy>
Congratulations.
22:26
<@TheWatcher>
Lucky bugger >.> I just get the raeg inducing ones...
22:39 ErikMesoy is now known as ErikMesoy|sleep
22:40 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
22:40 mode/#code [+qo Vornicus Vornicus] by ChanServ
22:42
< ToxicFrog>
TheWatcher: I can send you a copy of mine once it's done if you like~
22:43
< ToxicFrog>
(he also said he thought most students here would not be able to accomplish a project of this magnitude, on an architecture this unfamiliar. That I think unlikely.)
22:59
<@himi>
What's it on?
23:14
< RichyB>
http://tinyurl.com/abbv6ex <- is a neat looking Turing machine.
23:15
< ToxicFrog>
himi: a port of the Pilot cluster computing API to a reconfigurable embedded image processing architecture without cache coherency
23:17
<@TheWatcher>
ToxicFrog: I'd love to see it, yes.
23:18
< RichyB>
ToxicFrog: Pilot is... CSP primitives implemented on top of MPI?
23:19
< ToxicFrog>
RichyB: yes
23:19
< RichyB>
What did you port it to?
23:20
< ToxicFrog>
With runtime deadlock detection and call tracing and other useful debugging features.
23:20
< RichyB>
Ooh
23:20 * RichyB would not call implementing that anywhere a small feat.
23:20
< ToxicFrog>
(the port does not include the "on top of MPI" part. It's API-compatible but there is almost no shared code)
23:20
< ToxicFrog>
The IMAPCAR2, which you have probably never heard of.
23:22
< ToxicFrog>
256MB of memory (in 16MB pages), 8MB of program EEPROM, one 133MHz processor with a 128-way SIMD array with 2k of on-chip memory per SIMD PE, reconfigurable at runtime to be 17-core/64-way SIMD or 33-core/no SIMD instead.
23:22
< RichyB>
I hadn't heard of Pilot either, and there didn't seem to much a great richness of google results for "pilot cluster api".
23:22
< ToxicFrog>
Yeah, sorry, "pilot mpi" is the best search key to use
23:23
< ToxicFrog>
It is relatively recent and does not see a lot of use outside the university (although it sees rather a lot of use inside, given that we are part of SHARCNET)
23:23
< RichyB>
Conversely, there's a wealth of information about IMAPCAR2 online because the vendor, NEC, seem to be pretty free about publishing its data sheets far and wide. ;)
23:24
< ToxicFrog>
Anyways, the cool part is the runtime reconfiguration - the SIMD PEs are arranged into 4-PE tiles which can switch between being four PEs or one secondary processor core
23:24
< ToxicFrog>
The ALUs of three of them become part of the FPU, the directly attached image memory becomes the data and instruction caches, etc
23:24
< RichyB>
Wow.
23:25
< ToxicFrog>
However, the part that makes you really want a message-passing API for concurrency is the fact that there is no coherency between caches and the cache line resolution is (if you want anything approximating useful performance) 512bytes.
23:25
< RichyB>
So you either have 17 units which each execute one ALU instruction on 64-wide SIMD registers, or 33 units which you just use as ordinary MIMD cores?
23:25
< ToxicFrog>
So you pretty much have to treat it as a local-memory system
23:25
< ToxicFrog>
(and use the interprocessor message ring for communication)
23:26
< ToxicFrog>
Not quite, in mixed mode only the CP, the "original" code, can access the array
23:26
< ToxicFrog>
So you get 1 core with 128 way SIMD, or 1 core with 64-way and 16 secondary cores with no SIMD instructions, or 33 cores without SIMD capabilities.
23:26
< RichyB>
ohhh
23:27
< ToxicFrog>
s/original code/original core/
23:27
< RichyB>
Right, that makes much more sense. Thought you meant 17 cores with 64-ways each, which would be pretty impressive - rivalling many modern GPUs.
23:27
< ToxicFrog>
That would be badass but sadly is not the case
23:27
< ToxicFrog>
Anyways, I don't actually care about the SIMD array, I'm just here to make MIMD mode usable~
23:27
< ToxicFrog>
But it's really cool nonetheless.
23:28
< ToxicFrog>
TheWatcher: I can upload the current version right now if you like, there's a bunch of edits pending from Dr. Grewal but not, it seems, anything particularly major
23:28
< RichyB>
Hah.
23:30
< RichyB>
ToxicFrog: so in full SIMD mode, you get one ordinary core (single instruction, single data) plus one SIMD (each instruction operates on 128 registers in parallel)?
23:31
< RichyB>
And the MIMD mode gets you 33 cores, with mixed mode giving you some SIMD and some MIMD?
23:31
< RichyB>
Egh anyway
23:32
< ToxicFrog>
Kiiiind of. You get one ordinary core, which directly controls the SIMD array and has multiple instruction dispatch units, so you can execute one instruction "inside" the core and another on the entire array at once
23:32
< ToxicFrog>
You can't treat them as independent cores, though, it's a single VLIW instruction stream being consumed by a single decoder
23:32
< RichyB>
the instruction streams for the single-core and the SIMD array are mixed?
23:33
< ToxicFrog>
Yes, think of it like a modern desktop processor where some instructions use internal SIMD hardware and some don't
23:33
< RichyB>
So it's VLIW, where each fetch-execute cycle executes one scalar and one vector instruction?
23:34
< ToxicFrog>
I think it's actually two scalar and one vector, but I'd have to double check
23:34
< ToxicFrog>
I didn't do much work at the assembly language level on this architecture
23:35
< ToxicFrog>
Anyways, as a practical matter, you treat SIMD mode like a platform with a C compiler that has some extensions for concisely expressing SIMD operations (which are then compiled into instructions for the SIMD array)
23:35
< RichyB>
The scalar bit is in-order pipelined, I guess?
23:36
< RichyB>
*nodnod*
23:36
< ToxicFrog>
In MIMD mode you get a bunch of processors that look mostly the same (and attempting to execute SIMD instructions at all is a runtime hardware exception)
23:36
< ToxicFrog>
In mixed mode you get pretty much the same thing, but SIMD instructions on the CP will actually work rather than aborting
23:37
< RichyB>
SIMD code looks something like, "vec128_t a, b, c; a = b + c;", right?
23:43
< ToxicFrog>
(there are #pragmas to tell it which mode you're in, so it won't try to emit SIMD instructions for a PU)
23:43
< ToxicFrog>
They have actually extended the language with new operators and type qualifiers, actually
23:43
< RichyB>
How does the no-cache-coherency thing work?
23:43
< ToxicFrog>
But something like that, yes.
23:44
< RichyB>
So, in a cache-coherent architecture, if two different cores try to touch the same address in memory, they play cache pong as they trade it back and forth.
23:44
< ToxicFrog>
Exactly as it says on the box. If PU0 updates a value in cache, it's not automatically written back to main memory until cache pressure requires that, and other processors with that value cached are not informed and continue to use the old value.
23:45
< RichyB>
If two different cores try to touch the same piece of memory on an incoherent arch, you get undefined behaviour because there's no telling when things get flushed?
23:45
< ToxicFrog>
When a cache writeback occurs, no attempt to reconcile edits is made; whichever processor writes last wins, even if no edits in that cache line actually conflict.
23:45
< ToxicFrog>
Well, as long as no-one is ever doing anything but reading it it's fine, but yeah, if someone's writing it's undefined when (if ever) other processors will see those writes
23:46
< RichyB>
How do you do synchronisations? Memory barrier instructions?
23:47
< ToxicFrog>
Depends. There's a few low-level instructions you can use to do things like wait for other cores to halt. Apart from that, you use messages - there's a 16-bit message ring connecting all of the cores.
23:47
< ToxicFrog>
Er
23:47
< ToxicFrog>
16 bye
23:47
< ToxicFrog>
*byte
23:47
< ToxicFrog>
Each message is 4 bytes header + 12 bytes payload
--- Log closed Sat Jan 05 00:00:53 2013
code logs -> 2013 -> Fri, 04 Jan 2013< code.20130103.log - code.20130105.log >

[ Latest log file ]