00:07
kuldeep has quit [Ping timeout: 246 seconds]
00:19
Gurty has joined #m-labs
00:23
kuldeep has joined #m-labs
01:19
fengling has joined #m-labs
01:24
ylamarre has joined #m-labs
01:46
fengling has quit [Ping timeout: 240 seconds]
01:54
fengling has joined #m-labs
02:38
ylamarre has quit [Quit: ylamarre]
04:35
evilspirit has joined #m-labs
04:47
rohitksingh has joined #m-labs
05:03
<
GitHub69 >
artiq/master 799c2c7 Sebastien Bourdeauducq: runtime/i2c: more conservative timings
05:18
<
whitequark >
hm what happened now?
05:18
<
whitequark >
wire disconnected?
05:34
<
sb0 >
btw we should receive the proper "bnc for ants" connector soon
06:51
<
sb0 >
whitequark, did you sort out the compiler?
07:01
sandeepkr has joined #m-labs
07:04
rohitksingh has quit [Quit: Leaving.]
07:22
<
GitHub14 >
artiq/master 120db8b Sebastien Bourdeauducq: protocols/pipe_ipc: raise line length limit
07:22
<
GitHub14 >
artiq/master 168113c Sebastien Bourdeauducq: protocols/pc_rpc: support dynamic target creation
07:22
<
GitHub22 >
artiq/release-1 bbef353 Sebastien Bourdeauducq: protocols/pipe_ipc: raise line length limit
08:03
FabM has quit [Quit: ChatZilla 0.9.92 [Iceweasel 38.7.0/20160308234001]]
08:26
FabM has joined #m-labs
08:36
acathla has quit [Changing host]
08:36
acathla has joined #m-labs
08:55
_rht has joined #m-labs
09:08
<
sb0 >
bb-m-labs, force build pyqtgraph
09:08
<
bb-m-labs >
build #5 forced
09:08
<
bb-m-labs >
I'll give a shout when the build finishes
09:08
<
bb-m-labs >
Hey! build pyqtgraph #5 is complete: Success [build successful]
09:10
<
sb0 >
bb-m-labs, force build pyqtgraph
09:10
<
bb-m-labs >
build forced [ETA 19 seconds]
09:10
<
bb-m-labs >
I'll give a shout when the build finishes
09:10
<
bb-m-labs >
Hey! build pyqtgraph #6 is complete: Success [build successful]
10:25
<
sb0 >
_florent_, not sure. does it work if you remove the raise?
10:25
<
sb0 >
including with the simulator
10:26
<
_florent_ >
I'm converting the simulation of my cores with the simulator, I'm going to test that
10:29
fengling has quit [Ping timeout: 240 seconds]
10:32
evilspirit has quit [Ping timeout: 250 seconds]
10:33
evilspirit has joined #m-labs
10:38
fengling has joined #m-labs
11:38
bb-m-labs has quit [Quit: buildmaster reconfigured: bot disconnecting]
11:41
evilspirit has quit [Ping timeout: 244 seconds]
11:44
bb-m-labs has joined #m-labs
12:09
<
whitequark >
rjo: FYI I added a firewall since there are some services exposed on lab. (cups, sane) that are probably insecure
12:09
<
whitequark >
/etc/iptables.conf /etc/ip6tables.conf
12:30
<
sb0 >
rjo, do you have code to do a 2D Gaussian fit with numba (or something equally fast)?
12:48
<
sb0 >
i think i'll have to declare automatic column layout in qt unusable
12:49
<
sb0 >
it's ridiculously slow, in addition to the bugs
12:49
<
sb0 >
that is, unless whitequark or evilspirit fixes it...
12:50
<
sb0 >
it takes hundreds of ms to update one value in a 8x3 table
12:53
<
whitequark >
are you sure that's not python?
12:55
<
sb0 >
self.table.header().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents) -> makes it ridiculously sluggish
12:55
ylamarre has joined #m-labs
12:55
<
sb0 >
without it, it's fine
12:56
<
sb0 >
also, if the modified items are not being displayed (e.g. they are children of a folded QTreeView) then the speed is also OK
12:56
<
sb0 >
so yes, it does look like a Qt bug
12:56
<
whitequark >
no, I don't think so
12:56
<
whitequark >
it has to do a roundtrip to the table model, right?
12:56
<
whitequark >
every time it reads a cell?
12:57
<
sb0 >
yes, and when using a model that simply returns empty data, it's also slow
12:57
<
whitequark >
exactly
12:57
<
whitequark >
because what's slow is the calls to python. not qt layout code.
12:57
<
whitequark >
the baseline latency of a call into python is several orders of magnitude higher than an equivalent call into C++
12:57
<
sb0 >
but the python code does nothing
12:58
<
whitequark >
invoking the interpreter is expensive enough already
12:58
<
sb0 >
and it that's the case, then this feature is unusable with pyqt
12:58
<
whitequark >
binding GUI libraries to dynlangs is a stupid idea that barely works
12:58
<
sb0 >
and why doesn't qt cache things anyway?
12:58
<
whitequark >
because this is not a problem in qt
12:58
<
sb0 >
and I'm not convinced the problem is really slow python
12:58
<
whitequark >
profile it.
12:59
<
whitequark >
$ perf top -p PID
13:00
<
whitequark >
the cost of fetching data from a C++ array is ~dozens of instructions
13:00
<
whitequark >
the cost of calling an empty python function is ~thousands
13:03
<
sb0 >
52% python, 18% sip.so which is also pyqt stuff
13:03
<
sb0 >
but even with a 2-3x speedup it'll still be too slow
13:04
<
whitequark >
do I need to demonstrate that the equivalent C++ code works quickly?
13:06
<
whitequark >
8x3 table?
13:06
<
whitequark >
eight by three?
13:06
<
whitequark >
not eight thousand by three?
13:07
<
sb0 >
actually it's not a table, it's a QTreeView. but the same bug is present with the log
13:10
<
sb0 >
and watch qt crap out
13:12
<
sb0 >
actually ~20 updates per second are sufficient
13:14
<
whitequark >
ok, so I just made 8000 rows of 1-100 characters
13:14
<
whitequark >
scrolling does not have any noticeable delay. it's 60fps.
13:15
<
whitequark >
qmake .;make should build it
13:16
<
sb0 >
you need to change the data with automatic column size enabled
13:17
<
sb0 >
changing just a couple cells seems sufficient. my guess is the auto-layout-system will request data from the whole model again
13:17
<
sb0 >
one would assume it were smarter, since you have to tell qt what data you have changed
13:28
<
whitequark >
ok, so I change the model every 50ms
13:28
<
whitequark >
scrolling is still 60fps.
13:28
<
whitequark >
see updated zip at the same URL.
13:28
<
whitequark >
are you emitting the correct dataChanged signal?
13:30
key2 has joined #m-labs
13:33
<
whitequark >
it does take ~60% on my machine: 30% in harfbuzz, 38% in Qt, 10% in libc
13:33
<
whitequark >
but then again it's a lot of updates...
13:35
<
sb0 >
there is no auto-layout, is there?
13:36
<
whitequark >
there is
13:36
<
sb0 >
I can resize column 2 manually. when columns are manually resizable, it's also reasonably fast with python.
13:36
<
whitequark >
the flag is only set on column 0
13:36
<
whitequark >
yes, it's not 60fps with flag on columns 0-2
13:37
<
whitequark >
but it's still responsive and the scrolling is smooth
13:37
<
whitequark >
and that's with 8000 rows, not 8..
13:37
<
sb0 >
can you do the exact C++ equivalent of self.table.header().setSectionResizeMode(QtWidgets.QHeaderView.ResizeToContents)
13:37
<
sb0 >
that's what's in artiq, and what is causing the bug
13:37
<
whitequark >
it takes an index
13:38
<
whitequark >
what I did is
13:38
<
whitequark >
ui->tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
13:38
<
whitequark >
ui->tableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
13:38
<
whitequark >
ui->tableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
13:38
<
whitequark >
which sets the resize flag on all three sections.
13:38
<
sb0 >
why does the python version not take an index?
13:39
<
whitequark >
I have no idea
13:39
<
whitequark >
there is no C++ function "header()" either
13:39
<
whitequark >
only horizontalHeader() and verticalHeader()...
13:39
<
sb0 >
okay. it's horizontalHeader for QTableView, and header for QTreeView
13:39
<
sb0 >
but there is the version without index for both
13:39
<
whitequark >
ah, wait, it's overloaded
13:40
<
whitequark >
the other version doesn't take an index
13:40
<
sb0 >
ok. try that one
13:40
<
sb0 >
setStretchLastSection(True) also seems to be a performance killer
13:41
rohitksingh has joined #m-labs
13:42
<
whitequark >
updated
13:43
<
whitequark >
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
13:43
<
whitequark >
ui->tableView->horizontalHeader()->setStretchLastSection(true);
13:49
<
rjo >
whitequark: that broke ipv6 http and ssh at least
13:50
<
whitequark >
but I do confirm that it did
13:50
<
rjo >
and mosh (udp 60000-61000)
13:51
<
whitequark >
rjo: does it work now?
13:51
<
whitequark >
then it's not ip6tables
13:51
<
whitequark >
because I just flushed them.
13:52
<
rjo >
it also doesn't respond to icmp anymore
13:52
<
whitequark >
yes, I am fixing that now.
13:53
<
sb0 >
just for opening the window, Qt calls the model with DisplayRole 295 times ...
13:53
<
whitequark >
that's how it's supposed to work.
13:53
<
whitequark >
if your model needs caching, it caches everything itself
13:53
<
sb0 >
and 2104 times in total
13:54
<
whitequark >
consider: if Qt decided to cache everything, you would complain that it needs too much memory. or something to that extent.
13:54
<
whitequark >
the main problem is slow pyqt. pyqt ought to provide such cached models, or something like them.
13:55
<
whitequark >
I think you can also use Qt TableWidget (not TableView).
13:55
<
whitequark >
that's probably the easiest path with this problematic pyqt stuff
13:56
<
whitequark >
rjo: ok. i blocked icmp (unwittingly). but also the real reason is that i rebooted the machine
13:56
<
whitequark >
for some reason it did not pick up the ipv6 address.
14:00
<
whitequark >
rjo: I put the right thing into /etc/network/interfaces, I think it should work for you now.
14:02
<
whitequark >
let me restart it one more time...
14:02
<
whitequark >
ok. yes. that worked.
14:08
<
sb0 >
and this call count is after I made the table 8x3, btw
14:09
early has quit [Ping timeout: 250 seconds]
14:13
fengling has quit [Ping timeout: 240 seconds]
14:14
early has joined #m-labs
14:15
<
sb0 >
whitequark, there seem to be a lot of locality in the pattern of accesses to the model
14:15
<
rjo >
whitequark: udp 60000 seems blocked still, v4 and v6
14:15
<
sb0 >
so a cache that discards the old entries when adding new ones would probably solve it, without bloating memory usage
14:16
<
whitequark >
it's strictly worse than no cache for simple models (the majority of them)
14:17
ylamarre has quit [Ping timeout: 276 seconds]
14:17
<
sb0 >
the models I use are simple, and slow.
14:18
<
whitequark >
don't use pyqt.
14:18
<
sb0 >
what do you recommend?
14:18
<
sb0 >
don't use pyqt, don't use conda, ...
14:18
<
whitequark >
I write GUIs in their native language i.e. usually C++
14:19
<
whitequark >
and I would be quite surprised if you
*wanted* to use conda
14:21
<
sb0 >
writing that in C++ would have been a terrible mess as well
14:21
<
sb0 >
probably worse than fixing the MVC slowness issue
14:22
<
whitequark >
not really... modern C++ with a good compiler (clang) is a reasonable language
14:22
<
whitequark >
what is your objection to using TableWidget?
14:23
<
whitequark >
the type of data you have is quite conductive to using that one
14:23
<
whitequark >
i.e. static rarely changing
14:23
<
whitequark >
append-only even
14:23
<
sb0 >
QSortFilterProxyModel
14:24
<
whitequark >
so you can just instantiate that and use a QTableView.
14:24
<
sb0 >
well. the speed is alright when autolayout is disabled. I think I'll just disable it, which will work around the layout bugs too...
14:25
<
sb0 >
columns are still breaking in the log (rarely)
14:25
<
rjo >
sb0: i can write that. but for a simple gaussian model numba is a bit overkill.
14:36
ylamarre has joined #m-labs
14:50
fengling has joined #m-labs
15:43
key2 has quit [Ping timeout: 244 seconds]
15:48
fengling has quit [Ping timeout: 240 seconds]
16:04
ylamarre has quit [Quit: ylamarre]
16:17
fengling has joined #m-labs
16:20
<
rjo >
whitequark: udp 60000 seems blocked still, v4 and v6
16:22
fengling has quit [Ping timeout: 240 seconds]
16:43
sandeepkr has quit [Quit: Leaving]
16:45
FabM has quit [Quit: ChatZilla 0.9.92 [Firefox 45.0.1/20160315153207]]
16:50
fengling has joined #m-labs
16:59
<
GitHub118 >
artiq/master befbab5 Sebastien Bourdeauducq: gui: add image applet
16:59
<
GitHub118 >
artiq/master 0d7d584 Sebastien Bourdeauducq: master/worker_db: add controller_aux_target device_db entry type
16:59
<
GitHub118 >
artiq/master e680939 Sebastien Bourdeauducq: protocols: add remote_exec
17:15
sandeepkr has joined #m-labs
17:23
rohitksingh has quit [Ping timeout: 264 seconds]
17:39
rohitksingh has joined #m-labs
17:56
key2 has joined #m-labs
18:22
fengling has quit [Ping timeout: 240 seconds]
18:34
key2 has quit [Ping timeout: 240 seconds]
18:44
rohitksingh has quit [Quit: Leaving.]
18:54
mithro has quit [Ping timeout: 250 seconds]
18:59
fengling has joined #m-labs
19:00
mithro has joined #m-labs
19:06
<
GitHub179 >
artiq/master 590bedb Robert Jordens: examples: add fit_image
19:08
<
rjo >
sb0: ^ if you want it to take longer, just crank up the image size. numpy is fast, numba won't help much, nor does coding it in c. i would have to dig out the really expensive models for that to become relevant.
19:19
cyrozap has quit [Ping timeout: 250 seconds]
19:19
cyrozap has joined #m-labs
19:20
cyrozap is now known as Guest64468
19:21
mindrunner has quit [Ping timeout: 240 seconds]
19:24
mindrunner has joined #m-labs
19:34
fengling has quit [Ping timeout: 240 seconds]
20:03
fengling has joined #m-labs
20:26
Guest64468 has quit [Ping timeout: 250 seconds]
20:27
cyrozap has joined #m-labs
22:41
fengling has quit [Ping timeout: 240 seconds]
23:10
fengling has joined #m-labs
23:38
fengling has quit [Ping timeout: 240 seconds]