2012-10-10T00:36:34 *** antimatroidl has joined #aichallenge 2012-10-10T01:03:54 *** cyphase has quit IRC (Ping timeout: 260 seconds) 2012-10-10T01:09:07 *** mceier has quit IRC (Quit: leaving) 2012-10-10T01:55:15 *** cyphase has joined #aichallenge 2012-10-10T01:56:59 *** pairofdice has joined #aichallenge 2012-10-10T02:28:23 *** mceier has joined #aichallenge 2012-10-10T03:00:29 *** amstan has quit IRC (Quit: Konversation terminated!) 2012-10-10T03:09:17 *** epicmonkey has joined #aichallenge 2012-10-10T03:15:43 *** mlp has joined #aichallenge 2012-10-10T03:27:06 *** epicmonkey has quit IRC (Ping timeout: 246 seconds) 2012-10-10T03:36:08 *** coeus has quit IRC (Quit: Verlassend) 2012-10-10T04:45:00 *** epicmonkey has joined #aichallenge 2012-10-10T05:23:30 *** Cyndre has quit IRC (Quit: Leaving) 2012-10-10T05:28:00 *** sigh has joined #aichallenge 2012-10-10T06:23:35 *** antimatroidl has quit IRC (Ping timeout: 245 seconds) 2012-10-10T06:33:45 *** mleise has joined #aichallenge 2012-10-10T07:02:21 *** Kingpin13 has joined #aichallenge 2012-10-10T07:33:10 *** Kingpin13 has quit IRC (Quit: quit) 2012-10-10T07:48:05 *** pairofdice has quit IRC (Quit: In girum imus nocte et consumimur igni.) 2012-10-10T08:47:38 *** mlp has quit IRC (Ping timeout: 245 seconds) 2012-10-10T09:23:30 *** kakben has joined #aichallenge 2012-10-10T09:23:57 hello! 2012-10-10T09:24:37 i have searched far and wide without success in finding out when the next ai challenge will be. does anyone here have such information? 2012-10-10T09:30:40 and if it isn't decided yet, it would be great if that information was available at aichallenge.org and in here in the topic so you don't have to answer the question all the time =) 2012-10-10T09:37:06 *** antimatroidl has joined #aichallenge 2012-10-10T09:45:21 well, i read the logs and realized there are no news since people are too lazy to code the new challenge 2012-10-10T09:45:35 still would'v been nice with that info in the topic though :P 2012-10-10T09:46:30 *** mcstar has joined #aichallenge 2012-10-10T09:46:33 wrong 2012-10-10T09:46:38 they are not lazy to code 2012-10-10T09:46:46 its an organizational issue 2012-10-10T09:48:33 i see 2012-10-10T09:48:59 it least there is no information on when they would likely get going again i assume? 2012-10-10T09:49:24 no 2012-10-10T09:50:10 i might join the rspcontest.com in the meantime, saw it in one of the logs :P 2012-10-10T09:50:18 thanks for the info mcstar 2012-10-10T09:50:30 np 2012-10-10T09:57:19 *** amstan has joined #aichallenge 2012-10-10T09:57:19 *** ChanServ sets mode: +o amstan 2012-10-10T10:01:24 *** kakben has quit IRC (Quit: Page closed) 2012-10-10T10:12:15 *** thestinger has joined #aichallenge 2012-10-10T10:37:50 *** SoldierAntEater has joined #aichallenge 2012-10-10T10:40:16 *** sigh has quit IRC (Remote host closed the connection) 2012-10-10T10:45:27 *** antimatroidl1 has joined #aichallenge 2012-10-10T10:46:21 *** antimatroidl has quit IRC (*.net *.split) 2012-10-10T10:46:22 *** mviel has quit IRC (*.net *.split) 2012-10-10T10:46:22 *** loglog has quit IRC (*.net *.split) 2012-10-10T10:46:22 *** SoldierA1tEater has quit IRC (*.net *.split) 2012-10-10T10:46:56 mcstar: was that you in diguise on the news group?: "* why is haskell so much shorter syntax, can D get that nice syntax plssssssssss" 2012-10-10T10:48:22 answer by the inventor of D: "Haskell's syntax is quite a bit shorter, but I find it difficult to mentally read, though I'm sure with practice I could get used to it." 2012-10-10T10:53:00 *** mviel has joined #aichallenge 2012-10-10T10:55:22 haskell's syntax is way easier to read than C-like syntax imo 2012-10-10T10:55:28 you do just get used to whatever you use a lot 2012-10-10T10:56:26 haskell libraries on the other hand, tend to love making their own 7 operators 2012-10-10T10:56:34 and that's not easy to read :P 2012-10-10T11:15:44 *** mceier has quit IRC (Quit: leaving) 2012-10-10T11:20:30 *** amstan has quit IRC (Quit: Konversation terminated!) 2012-10-10T11:20:47 *** amstan has joined #aichallenge 2012-10-10T11:20:47 *** ChanServ sets mode: +o amstan 2012-10-10T11:26:08 *** Kingpin13 has joined #aichallenge 2012-10-10T11:35:10 mleise: no, wasnt me 2012-10-10T11:35:21 i dont D 2012-10-10T11:35:36 i looked at your source code 2012-10-10T11:35:50 i tried to add a debug statement to print each step of the process 2012-10-10T11:36:02 but i dont understand D at all 2012-10-10T11:36:23 did you compile in debug mode ? with dmd it is "-debug" 2012-10-10T11:36:33 i didt compile 2012-10-10T11:36:33 otherwise you see no output 2012-10-10T11:36:42 since i dont understand the code, and couldnt make the change 2012-10-10T11:36:52 oh :-( 2012-10-10T11:37:00 D has all sorts of constructs 2012-10-10T11:37:10 i have no idea what is a function, what is a closs 2012-10-10T11:37:19 class* 2012-10-10T11:37:22 whatever 2012-10-10T11:37:27 haskell is easier to read 2012-10-10T11:38:42 i hate cold sweat 2012-10-10T11:39:18 mcstar: there are no classes and everything that has "methods" is clearly designated with "struct" 2012-10-10T11:39:40 you mean i should look for definitions?? 2012-10-10T11:40:05 mleise: i didnt have syntax highlighting, maybe that was the problem 2012-10-10T11:40:15 i needed no polymorphism so i used structs. and no, there are no extra definitions, at least no more than in your haskell code when you define a type 2012-10-10T11:40:42 mcstar: most desktop text editors support D 2012-10-10T11:40:59 probably i dont have emacs d-mode or whatever 2012-10-10T11:41:00 e.g. gedit, geany, ... 2012-10-10T11:41:01 /usr/share/vim/vim73/syntax/d.vim 2012-10-10T11:41:17 *** Scooper has joined #aichallenge 2012-10-10T11:41:23 mleise: gvim, ... :P 2012-10-10T11:41:25 mleise: so if i compile with -debug, i see every step? 2012-10-10T11:41:57 mcstar: if you added debug write(f)ln ... everywhere, yes 2012-10-10T11:42:22 i thought you already set up printing the board 2012-10-10T11:42:32 f means you want printf like format specifiers %s is mostly ok 2012-10-10T11:42:32 ln means line-break 2012-10-10T11:42:38 mleise: 728800e3.d(84): Error: undefined identifier 'length' 2012-10-10T11:42:49 only with debug ^^ 2012-10-10T11:42:51 lol, yes noticed that yesterday 2012-10-10T11:43:03 changed something and didn't recompile in debug 2012-10-10T11:43:19 remove that line 2012-10-10T11:43:31 or change solutions.length to grid_solutions 2012-10-10T11:57:43 *** foRei has joined #aichallenge 2012-10-10T12:02:52 *** mviel has quit IRC (Remote host closed the connection) 2012-10-10T12:04:09 *** mviel has joined #aichallenge 2012-10-10T12:52:00 *** epicmonkey has quit IRC (Ping timeout: 246 seconds) 2012-10-10T12:53:36 *** mceier has joined #aichallenge 2012-10-10T13:02:35 *** cyphase has quit IRC (Read error: Connection reset by peer) 2012-10-10T13:05:07 *** cyphase has joined #aichallenge 2012-10-10T13:19:23 mleise: what should i change in your program to get a count of how many tries had your algorithm tried for a puzzle? 2012-10-10T13:21:14 I would add a counter that is incremented on every entry of solve() 2012-10-10T13:21:38 *** rofer has quit IRC (Ping timeout: 246 seconds) 2012-10-10T13:21:40 oh wait... I create new instances of the Solver for that every time 2012-10-10T13:21:57 maybe make it a global variable for now 2012-10-10T13:22:21 so somewhere at top level write "uint tries;" 2012-10-10T13:22:34 and then at the top of solve() write "tries++;" 2012-10-10T13:22:59 and then check that in main, after a puzzle has been solved and reset it before the next 2012-10-10T13:23:12 how about unit tries=0; ? 2012-10-10T13:23:24 that has the same effect 2012-10-10T13:23:31 ok 2012-10-10T13:23:39 automatic initilization? 2012-10-10T13:23:51 yes, but for globals that works even in C 2012-10-10T13:24:18 i dont think it is good style 2012-10-10T13:24:31 and for non-globals, you get grarbage 2012-10-10T13:24:50 non-statics 2012-10-10T13:25:01 static variables get zeroed, not all globals do :P 2012-10-10T13:25:20 no, and actually it was meant to initialize with 'this is not good' values, e.g. the default for float is NaN, for char it is 0xFF 2012-10-10T13:25:37 (referring to mcstar) 2012-10-10T13:26:01 thestinger: what is a non-static global ? 2012-10-10T13:26:12 a normal global 2012-10-10T13:26:15 without static 2012-10-10T13:26:20 how is it dynamic ? 2012-10-10T13:26:21 :) 2012-10-10T13:26:21 int x; 2012-10-10T13:26:26 mleise: static has a specific meaning 2012-10-10T13:26:30 well, several 2012-10-10T13:26:39 at file-scope it means the variable is local to the translation unit 2012-10-10T13:26:41 for global atomic variables? 2012-10-10T13:26:49 ah i know 2012-10-10T13:26:52 file-scoped 2012-10-10T13:26:58 well, translation-unit scoped 2012-10-10T13:27:02 so... at file scope it means "private and 0 initialized ?" 2012-10-10T13:27:02 that 2012-10-10T13:27:04 C has no concept of files :P 2012-10-10T13:27:13 mleise: basically, yes 2012-10-10T13:27:18 wtf 2012-10-10T13:27:19 TU <- fuck it 2012-10-10T13:27:51 mleise: and in function scope, static is a storage specifier 2012-10-10T13:27:56 it means each call shares the same variable 2012-10-10T13:27:57 another reason why I prefer D, to be honest. static means "without context" 2012-10-10T13:28:05 so it's like a scoped global (evil) 2012-10-10T13:28:32 mleise: in C++ you would just use an anonymous namespace 2012-10-10T13:28:51 you can't make a struct 'static', so the methods all get external linkage without one 2012-10-10T13:29:08 it's deprecated 2012-10-10T13:29:11 per the standard 2012-10-10T13:29:30 (well, not in C) 2012-10-10T13:29:37 you have to keep too much details in your head 2012-10-10T13:29:42 thestinger: how do you do it? 2012-10-10T13:29:49 do what? :p 2012-10-10T13:29:57 keep those in your head 2012-10-10T13:30:00 dunno 2012-10-10T13:30:12 maybe, your wall is postered with c++ reference cards 2012-10-10T13:30:14 it's not like I code much C++ anyway, I wouldn't call myself an expert on it 2012-10-10T13:30:15 yeah I noticed that too, last time 2012-10-10T13:30:24 I just know those things... 2012-10-10T13:30:40 mcstar: well I do have the pdfs for the C standard and the C++ standard, because all other references can't be trusted 2012-10-10T13:30:54 :) 2012-10-10T13:30:55 and they're easy to understand, compared to terrible blogs 2012-10-10T13:31:01 something i dont bother to read... 2012-10-10T13:31:28 i just let the compiler lead me into writing buggy code 2012-10-10T13:31:43 today I found out in a forum post that I can expand a struct into separate parameters using mystruct.tupleof. 2012-10-10T13:32:11 mcstar: gcc is a lying bastard though 2012-10-10T13:32:14 hardly warns about anything 2012-10-10T13:32:27 void foo(int a, int b, int c, int d); foo(rect.tupleof); 2012-10-10T13:33:09 thestinger: GCC has a load of warning flags 2012-10-10T13:33:16 (apply foo '(a b c)) 2012-10-10T13:33:18 well, 2012-10-10T13:33:22 (apply #'foo '(a b c)) 2012-10-10T13:33:25 mleise: I know 2012-10-10T13:33:29 and it hardly warns about anything. 2012-10-10T13:33:30 i think even down to parnethesis around a & b == c 2012-10-10T13:33:44 doesn't mean it warns about a lot of undefined behavior 2012-10-10T13:33:46 want a simple one? 2012-10-10T13:33:53 ok shoot 2012-10-10T13:34:06 -Wall will solve it! 2012-10-10T13:34:14 template struct foo { std::vector v; }; 2012-10-10T13:34:21 mleise: -Wall hardly turns on any warnings :P 2012-10-10T13:34:26 -Wall warnings should be on by default 2012-10-10T13:34:41 mleise: so, im at solve() 2012-10-10T13:34:43 template struct foo { std::vector v; }; is undefined behavior 2012-10-10T13:34:54 where do i increment? right in beginning? 2012-10-10T13:34:59 it works though, with gcc and clang 2012-10-10T13:35:07 but switch vector -> unordered_map and it breaks 2012-10-10T13:35:10 mcstar: yes, just not in a loop ;) 2012-10-10T13:35:36 thestinger: thats the old error, you told me before, right? 2012-10-10T13:35:44 mcstar: yes 2012-10-10T13:35:48 thestinger: we want a new example! 2012-10-10T13:35:49 but there are more 2012-10-10T13:35:52 name resolution then 2012-10-10T13:35:55 just to test your extent of knowledge 2012-10-10T13:35:59 hmm, ok that should be fixed 2012-10-10T13:36:00 anyway I use 2012-10-10T13:36:26 -Wall -Wextra -pedantic is a good start.... 2012-10-10T13:36:33 mleise: and where do i print its value? :) 2012-10-10T13:36:42 who's value? 2012-10-10T13:36:48 tries' 2012-10-10T13:36:56 in the main() 2012-10-10T13:37:03 -Winit-self -Wshadow -Wformat=2 -Wmissing-declarations -Wstrict-overflow=5 -Wcast-align -Wcast-qual -Wconversion -Wunused-macros -Wwrite-strings should be on by default 2012-10-10T13:37:03 after solve() 2012-10-10T13:37:06 thanks clang, for -Wmost 2012-10-10T13:37:27 funny how 'most' is a hell of a lot more than 'all' 2012-10-10T13:37:31 mleise: there is no main() 2012-10-10T13:37:39 void main(string[] args) 2012-10-10T13:37:48 XD 2012-10-10T13:37:53 j/k 2012-10-10T13:37:55 auto solutions = solver.solve(); 2012-10-10T13:38:20 writefln("Recursion count %s", tries); tries = 0; 2012-10-10T13:38:32 mcstar: https://github.com/thestinger/util/blob/master/maybe.hh now if only I knew how to safely init it from an rvalue of the contained object 2012-10-10T13:38:42 there are 6 kinds of values 2012-10-10T13:38:46 * thestinger cries 2012-10-10T13:39:16 rvalue, lvalue, xvalue, glvalue, prvalue 2012-10-10T13:39:21 and one more I forget 2012-10-10T13:39:36 mleise: Recursion count 1 2012-10-10T13:39:44 oh wait no just those 5 2012-10-10T13:39:49 thestinger: ive already seen that :) 2012-10-10T13:40:04 mcstar: that's good 2012-10-10T13:40:16 it couldn't be better ^^ 2012-10-10T13:40:28 mcstar: I need to make either and variant too :( 2012-10-10T13:40:43 thestinger: just forget c++, come join haskell! :P 2012-10-10T13:40:57 mcstar: rust* 2012-10-10T13:41:18 pss: if you want a better C++ and don't like Haskell's syntax, come join D. 2012-10-10T13:41:19 haskell* 2012-10-10T13:41:30 he likes haskell's syntax 2012-10-10T13:41:33 mleise: I'll stick with rust :P 2012-10-10T13:41:56 mleise: ill add the increment in while (fill != 0) { ok? 2012-10-10T13:42:15 thestinger: you know what I've seen? #[link_args, "-l"] 2012-10-10T13:42:29 wat? 2012-10-10T13:42:42 how can you put an exact linker argument line for the GNU 'ld' in a source file ??? 2012-10-10T13:42:53 this Rust is so... wat 2012-10-10T13:43:24 in a source file? or the package files 2012-10-10T13:43:27 mcstar: depends on what you want it to return 2012-10-10T13:43:31 .rs is source 2012-10-10T13:43:38 thestinger: in a binding header 2012-10-10T13:43:46 or so, dunno 2012-10-10T13:43:48 rust doesn't have headers 2012-10-10T13:43:53 .rc is the package file (rust crate) 2012-10-10T13:43:58 https://github.com/linuxfood/rustsqlite/blob/master/sqlite.rc like that 2012-10-10T13:44:37 mleise: as i said, i want it to return all the tries it made! every time, it tries a new number for a square, i want to increment it, i want the count of the nodes the search ever reaches 2012-10-10T13:44:38 mcstar: inside the while-loop you will get 81 2012-10-10T13:44:50 mleise: thats toooooooooooo smal 2012-10-10T13:44:53 l 2012-10-10T13:45:17 well, it does only try once if it returns 1 2012-10-10T13:45:40 there was no further recursion with trial and error 2012-10-10T13:45:54 all the cells were logically deduced from the givens 2012-10-10T13:46:02 mcstar: https://github.com/thestinger/util/blob/master/iterplus.py look haskell! uhh, I mean python :P 2012-10-10T13:46:32 you did write "tries++;", didn't you ? 2012-10-10T13:46:42 ... 2012-10-10T13:46:48 you kidding? 2012-10-10T13:46:55 not so sure 2012-10-10T13:47:02 yeah, i got 81 too 2012-10-10T13:47:06 but thats way too small 2012-10-10T13:47:10 stupid algo part 2 still hasn't started 2012-10-10T13:47:20 that's just the consequence of no recursion 2012-10-10T13:47:35 1 trie, means 81 times a cell is modified 2012-10-10T13:47:46 *1 try 2012-10-10T13:48:23 i dont follow 2012-10-10T13:48:36 it doesnt matter if you have recursion or not 2012-10-10T13:48:46 recursion is just a way to iterate in my case 2012-10-10T13:49:11 as i said, im DFSing, you said you do too 2012-10-10T13:49:26 so? how many nodes does your search reach? 2012-10-10T13:49:29 mcstar: in case of no iteration/recursion, you get 1 try. and that also means 81 if used inside the while-loop 2012-10-10T13:49:59 only recursion in my code can make this value go through the roof 2012-10-10T13:50:08 yeah 2012-10-10T13:50:13 i want that value 2012-10-10T13:50:28 how can i reconstruct that value from your code/ 2012-10-10T13:50:29 ? 2012-10-10T13:50:35 lol you are getting it. the puzzle you chose is too simple 2012-10-10T13:50:41 no 2012-10-10T13:50:47 it doesn't need recursion 2012-10-10T13:51:00 let me try it, I'll post the code then... 2012-10-10T13:57:33 mcstar: updates in dropbox 2012-10-10T13:58:55 *** smjm has joined #aichallenge 2012-10-10T13:58:55 *** smjm has joined #aichallenge 2012-10-10T14:03:19 in the benchmark there are 3 puzzles that I can solve without recursion, it seems. 2012-10-10T14:07:38 ill check, im afk intermittently 2012-10-10T14:11:12 my mom is a bit fragile tonight 2012-10-10T14:11:33 shes stressed out for work 2012-10-10T14:12:04 mleise: the puzzle, that i got a count of 81 is the first of the hard 20 2012-10-10T14:14:39 mcstar: yep 2012-10-10T14:15:11 also puzzles 18 and 19 can be solved without recursion 2012-10-10T14:20:26 *** alehorst has quit IRC (Read error: Connection reset by peer) 2012-10-10T14:30:57 *** iglo has joined #aichallenge 2012-10-10T14:47:06 *** amstan has quit IRC (Read error: Connection reset by peer) 2012-10-10T15:04:44 *** Accoun has quit IRC () 2012-10-10T15:05:56 mleise: im such an idiot 2012-10-10T15:06:17 or, i just havent played much sudoku 2012-10-10T15:06:24 probably an idiot 2012-10-10T15:11:39 don't think so bad about yourself. did you have an enlightenment ? 2012-10-10T15:12:51 I just tried to understand my own algorithm. It took me an hour to see why it finds some values. 2012-10-10T15:13:08 Now I can finally refactor and extend it a bit 2012-10-10T15:14:04 mleise: i understand now, that if a value shows up only once among the possible values of a unit, then you can put that in 2012-10-10T15:14:27 i have to actually try to solve a damn sudoku 2012-10-10T15:14:31 i had to* 2012-10-10T15:14:35 ^^ 2012-10-10T15:15:10 mleise: ' I just tried to understand my own algorithm.' what do you mean? 2012-10-10T15:15:42 you wrote it, so... 2012-10-10T15:15:51 I forgot why it works. And for a moment I thoght: This second stage cannot possibly remove any options from the set 2012-10-10T15:15:56 well, mine fits in 20 lines now 2012-10-10T15:16:02 maybe thats more easily comprehensible 2012-10-10T15:16:23 is it as slow as my 17 line version ? 2012-10-10T15:16:37 way faster 2012-10-10T15:16:56 ~500sec on that benchmark 2012-10-10T15:17:29 4h / 500s = 29 times faster, alright :) 2012-10-10T15:18:15 actually I ran your previous program on my notebook and my CPU is only about 1.4 times faster 2012-10-10T15:18:31 *** Accoun has joined #aichallenge 2012-10-10T15:18:57 mleise: when mine is on 2Ghz? 2012-10-10T15:19:02 thats probably correct 2012-10-10T15:19:05 amd vs. intel 2012-10-10T15:19:47 hmm, I don't know, I thought all your numbers were with 1Ghz 2012-10-10T15:20:12 no, i usually quote x/2= 2012-10-10T15:20:23 i either write it out 2012-10-10T15:20:29 or it is implied 2012-10-10T15:20:44 it really does speed up things by a factor of 2 2012-10-10T15:20:58 i checked it multiple times, so i dont bother switching to 2Ghz 2012-10-10T15:22:44 I just run in ondemand all the tmie 2012-10-10T15:24:09 mleise: when i was under kde, this desktop search shit run almost all the time 2012-10-10T15:24:23 that would have made it run at 2ghz 2012-10-10T15:24:32 thats a total waste of energy 2012-10-10T15:24:34 was that before inotify ? 2012-10-10T15:24:40 just now 2012-10-10T15:24:56 i just now switched back to awesome, that i wrote that okular session manager script 2012-10-10T15:24:57 when they had to manually check for changed files 2012-10-10T15:25:19 mleise: nono, it just havent finished making its repository 2012-10-10T15:25:28 for months now, it just keeps scanning 2012-10-10T15:25:32 a have a lot of shit... 2012-10-10T15:25:49 i* 2012-10-10T15:26:04 the only thing running here all the time is the browser JavaScript and Flash 2012-10-10T15:35:40 *** ChanServ has quit IRC (shutting down) 2012-10-10T15:36:22 *** ChanServ has joined #aichallenge 2012-10-10T15:36:22 *** card.freenode.net sets mode: +o ChanServ 2012-10-10T15:47:16 *** epicmonkey has joined #aichallenge 2012-10-10T15:47:47 *** rofer has joined #aichallenge 2012-10-10T16:00:42 *** smjm has quit IRC (Quit: Konversation terminated!) 2012-10-10T16:23:52 *** Kingpin13 has quit IRC (Quit: quit) 2012-10-10T16:38:24 *** iglo has quit IRC (Remote host closed the connection) 2012-10-10T16:45:32 *** alehorst has joined #aichallenge 2012-10-10T16:53:14 *** epicmonkey has quit IRC (Ping timeout: 276 seconds) 2012-10-10T16:54:30 *** foRei has quit IRC (Read error: Connection reset by peer) 2012-10-10T17:43:39 *** Scooper has quit IRC (Quit: Leaving) 2012-10-10T17:50:20 mleise: ondemand is definitely best on new hardware 2012-10-10T17:50:32 saves more power than clocking it at the lowest level, because it gets back to idle faster 2012-10-10T17:50:52 but old hardware has really high scaling latency, and doesn't have power gating magic 2012-10-10T17:51:14 * thestinger is guessing mcstar has a computer from a cracker jack box :) 2012-10-10T17:51:43 what? 2012-10-10T17:53:05 computation power per power consumption must be superlinear 2012-10-10T17:53:53 but the frequency != power consumption 2012-10-10T17:54:02 intel CPUs turn off the entire CPU at idle 2012-10-10T17:54:04 or idle cores 2012-10-10T17:54:07 or idle parts of cores 2012-10-10T17:54:25 cycles while in deep sleep -> same power usage, regardless of frequency 2012-10-10T17:54:43 so, i dont see why would you not benefit power-consumtion wise from underclocking 2012-10-10T17:54:47 1000 cycles at 0W is still 0W 2012-10-10T17:55:27 thestinger: you mean 'ondemand' can power down whole parts? ok 2012-10-10T17:55:31 mcstar: https://lesswatts.org/projects/applications-power-management/race-to-idle.php from intel's site 2012-10-10T17:55:34 mcstar: ondemand doesn't 2012-10-10T17:55:48 then? 2012-10-10T17:55:52 mcstar: with scaling off completely, the CPU still powers down to deep sleep states 2012-10-10T17:56:10 so? 2012-10-10T17:56:16 i dont get you 2012-10-10T17:56:25 mcstar: it has deeper sleep states than the lowest frequency 2012-10-10T17:56:37 and you don't need software cpu scaling to get to them 2012-10-10T17:56:38 why would you not benefit from running everything at a lower maximum frequencey? 2012-10-10T17:56:46 mcstar: read the link 2012-10-10T17:56:51 no 2012-10-10T17:56:54 higher frequency -> get back to idle faster 2012-10-10T17:57:05 " On this processor, we're decoding one second of a MP3 file or some HDTV media every second. This decoding takes 0.5 seconds at half speed, and, consequently, 0.25 seconds at full speed. " 2012-10-10T17:57:15 The energy consumption for one second is 2012-10-10T17:57:16 Half speed: 0.5s * 24W + 0.5s * 1W = 12.5 Joules 2012-10-10T17:57:18 Full speed: 0.25s * 34W + 0.75s * 1W = 9.25 Joules 2012-10-10T17:58:14 mcstar: http://ompldr.org/vZnUxMw idle stats on my computer atm 2012-10-10T17:58:36 cores are only active up to 4% of the time (actually non-idle, and going at the set frequency) 2012-10-10T17:59:25 I do have ondemand on (it's the default now) but it doesn't affect my power usage during regular usage 2012-10-10T18:00:11 on the other hand, turning on PCI PM, wlan power_save and audio power_save reduces usage by 3 watts 2012-10-10T18:00:55 24W half-speed, 34W full-speed only means these chips are underclocked severely 2012-10-10T18:01:51 why? 2012-10-10T18:02:23 because there will be a saturation, before you burn the chip 2012-10-10T18:02:43 clock speed != power usage 2012-10-10T18:02:48 increasing a unit of computational power will need more than a unit of power 2012-10-10T18:02:52 at *non-idle* it is proportional to power usage 2012-10-10T18:02:58 CPUs spend almost all their time at idle 2012-10-10T18:03:45 why do you keep repeating this? clock speed != power usage 2012-10-10T18:03:50 of course it isnt 2012-10-10T18:03:56 because they are unrelated at idle 2012-10-10T18:04:00 they dont even have the same unit of measure 2012-10-10T18:04:10 clock speed is not proportional to power usage 2012-10-10T18:04:18 no 2012-10-10T18:04:33 a modern CPU uses the same amount of power at idle regardless of clock speed 2012-10-10T18:04:44 great 2012-10-10T18:04:47 the CPU doesn't care what you tell it the clock speed is, it's going to a deep sleep state 2012-10-10T18:04:56 great 2012-10-10T18:05:15 :P 2012-10-10T18:05:47 you would get the same effect of setting the frequency to 50% for a long running computation by using schedtool to limit it to 50% CPU usage 2012-10-10T18:05:54 in fact you would save more power 2012-10-10T18:08:19 great, you just invented PWM control 2012-10-10T18:09:20 mcstar: 1 second at 1.5GHz uses more power than 0.5 seconds at 3.0GHz and 0.5 seconds at idle 2012-10-10T18:10:12 thestinger: i don understand numbers, you know, saw the calculation 2012-10-10T18:10:16 do 2012-10-10T18:10:45 thats why im also saying, that these chips are underclocked 2012-10-10T18:11:05 anyway, let me finish my sudoku solver 2012-10-10T18:11:09 well all intel chips are clocked to fit in a certain TDP at 100% usage 2012-10-10T18:11:17 laptop ones are supposed to be <20W 2012-10-10T18:12:01 mcstar: I thought you had 20 sudoku solvers by now based on the conversations :P 2012-10-10T18:12:19 ~3 2012-10-10T18:12:27 im writing the best one now 2012-10-10T18:12:51 it will beat mleise's 2012-10-10T18:14:43 mcstar: no no never! 2012-10-10T18:15:03 keep dreaming XD 2012-10-10T18:15:12 I'm already in the middle of refactoring for some more %s I hope. I threw out the 3 additional tables. 2012-10-10T18:15:24 I hope that doesn't make it slower in the end 2012-10-10T18:15:53 Also, Haskell is just too slow for Sudoku 2012-10-10T18:17:30 *** antimatroidl1 has quit IRC (Quit: Leaving.) 2012-10-10T18:19:19 and D doesnt have any benefit over C++ 2012-10-10T18:20:31 it does have benefits over C++, but it loses the advantages that would make you use C++ in the first place :P 2012-10-10T18:21:22 i didnt strive for a correct statement 2012-10-10T18:21:37 just wanted to counter his 2012-10-10T18:42:37 oh fuck 2012-10-10T18:42:43 i hit a wall 2012-10-10T18:43:26 im passing around a record field getter, but i wont be able to update the record with it 2012-10-10T19:19:29 getters are no setter 2012-10-10T19:20:12 i have to use the lens package 2012-10-10T19:20:44 mleise: its easy, http://hackage.haskell.org/package/lens-3.0.1 2012-10-10T20:44:22 night 2012-10-10T20:45:07 *** mleise has quit IRC (Quit: Leaving.) 2012-10-10T20:52:11 *** mcstar has quit IRC (Ping timeout: 260 seconds) 2012-10-10T22:29:16 *** antimatroidl has joined #aichallenge 2012-10-10T23:13:18 *** antimatroidl has quit IRC (Quit: Leaving.)