Giter Site home page Giter Site logo

ami's People

Contributors

chrisvam avatar ddamiani avatar monarin avatar msdubrovin avatar rclaus2 avatar syamajala avatar thatweaver avatar tjlane avatar valmar avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ami's Issues

Fix linregress

Linregress should handle floats and arrays. Right now it cant and crashes when you try to connect a PickN into it.

Add Blob Finder Support

Support blob finder in AMI. Make example with 2D histogram of x,y positions using tmoopal in exp=tmoc00118,run=13.

clearing out complex graph seemed to leave global collector code running

We could see this in the prometheus plots: after we replaced a complex graph with a simple one (with a single hsd red-box display) the global collector continued to use the same significant cpu time of the complex graph. Restarting ami from scratch returned to global collector cpu usage to near zero.

User-prints to GUI

In a python editor box would be nice if user could get output back to the GUI with a function call (e.g. for debug)

Reload file when using "Manage Libraries"

When an external library is loaded in AMI, if the library is modified, there is no way to reload it.

If a user clicks "Manage Libraries" and then selects the library file again, the file is not really reloaded, and the old content of the file is shown in the "Manage Libraries" window

make errors more obvious

When a box has an exception it is turned red, but the line is quite thin so the users miss it. Also, it is not clear which messages in the Status window are significant errors. Would be good if both of these could be made more visible to the users.

Mouse hover to get coordinates

From Xiang: when hovering over a 1D or a 2D plot with the mouse it would be nice to be able to see the coordinates (using the axis scale).

Notify users of errors with "managed libraries"

Worked with @valmar and @xianglgithub had inadvertently included these two lines in his .fc file:

"library": {
"paths": [
"/cds/home/x/xiangli/ami/ami_tmo/TMO.py",
"/cds/group/pcds/dist/pds/tmo/scripts/TMO/TMO.py"
]
},

We think if these had identical function definitions then an error is thrown but the user doesn't see it: the only symptom is that the plots don't show up.

Two ami-local processes fight for zmq port?

I believe two ami-local processes on one node fight for a zmq port. See below.


psanagpu106:$ ps -ef | grep ami-local
cpo 1631 1552 0 18:45 pts/20 00:00:00 grep --color=auto ami-local
roibabar 30426 21928 0 17:05 pts/42 00:00:04 /cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/bin/python3.7 /cds/home/opr/rixopr/git/lcls2_032421/install/bin/ami-local -l xqfs.fc
psanagpu106:
$

psanagpu106:~$ cd git/lcls2
psanagpu106:lcls2$ source setup_env.sh
(ps-4.3.0) psanagpu106:lcls2$ ami-local -l rix_width.fc -b 1 -f interval=.3 psana://exp=rixx43518,run=45
No module named 'ndarray'
No module named 'pyfftw'
[ 2021-03-30 18:45:41,969 | ami.worker | INFO ] Starting worker # 0, sending to collector at tcp://127.0.0.1:5557 PID: 2651
[ 2021-03-30 18:45:41,973 | ami.collector | INFO ] Starting collector on node # 0 PID: 2652
Process nodecol-n0:
[ 2021-03-30 18:45:41,981 | ami.collector | INFO ] Starting collector on node # 0 PID: 2663
[ 2021-03-30 18:45:41,982 | ami.comm | INFO ] worker000: Started Prometheus client on port: 9205
Process globalcol:
[ 2021-03-30 18:45:41,992 | ami.manager | INFO ] Starting manager, controlling 1 workers on 1 nodes PID: 2669
Process manager:
Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
File "/cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
self.run()
File "/cds/home/c/cpo/git/ami/ami/multiproc.py", line 33, in run
self._target(*self._args, **self._kwargs)
File "/cds/home/c/cpo/git/ami/ami/multiproc.py", line 33, in run
self._target(*self._args, **self._kwargs)
File "/cds/home/c/cpo/git/ami/ami/multiproc.py", line 33, in run
self._target(*self._args, **self._kwargs)
File "/cds/home/c/cpo/git/ami/ami/local.py", line 172, in _sys_exit
sys.exit(func(*args, **kwargs))
File "/cds/home/c/cpo/git/ami/ami/local.py", line 172, in _sys_exit
sys.exit(func(*args, **kwargs))
File "/cds/home/c/cpo/git/ami/ami/local.py", line 172, in _sys_exit
sys.exit(func(*args, **kwargs))
File "/cds/home/c/cpo/git/ami/ami/collector.py", line 186, in run_global_collector
hutch)
File "/cds/home/c/cpo/git/ami/ami/manager.py", line 666, in run_manager
hutch) as manager:
File "/cds/home/c/cpo/git/ami/ami/collector.py", line 171, in run_node_collector
hutch)
File "/cds/home/c/cpo/git/ami/ami/collector.py", line 154, in run_collector
prometheus_dir, hutch) as collector:
File "/cds/home/c/cpo/git/ami/ami/manager.py", line 49, in init
super().init(results_addr, hutch=hutch)
File "/cds/home/c/cpo/git/ami/ami/collector.py", line 154, in run_collector
prometheus_dir, hutch) as collector:
File "/cds/home/c/cpo/git/ami/ami/collector.py", line 23, in init
Collector.init(self, collector_addr, ctx=self.ctx, hutch=hutch)
File "/cds/home/c/cpo/git/ami/ami/comm.py", line 897, in init
self.collector.bind(addr)
File "/cds/home/c/cpo/git/ami/ami/collector.py", line 23, in init
Collector.init(self, collector_addr, ctx=self.ctx, hutch=hutch)
File "/cds/home/c/cpo/git/ami/ami/comm.py", line 897, in init
self.collector.bind(addr)
File "/cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/lib/python3.7/site-packages/zmq/sugar/socket.py", line 172, in bind
super().bind(addr)
File "/cds/home/c/cpo/git/ami/ami/comm.py", line 897, in init
self.collector.bind(addr)
File "/cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/lib/python3.7/site-packages/zmq/sugar/socket.py", line 172, in bind
super().bind(addr)
File "zmq/backend/cython/socket.pyx", line 540, in zmq.backend.cython.socket.Socket.bind
File "/cds/sw/ds/ana/conda2/inst/envs/ps-4.3.0/lib/python3.7/site-packages/zmq/sugar/socket.py", line 172, in bind
super().bind(addr)
File "zmq/backend/cython/socket.pyx", line 540, in zmq.backend.cython.socket.Socket.bind
File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
File "zmq/backend/cython/socket.pyx", line 540, in zmq.backend.cython.socket.Socket.bind
File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Address already in use
zmq.error.ZMQError: Address already in use
zmq.error.ZMQError: Address already in use

Timeplot changing points

When changing the number of points in a timeplot the plot doesn't seem to always listen to the changed setting. I believe Dan D. has also seen this.

Fix AMI Manager Crashes

Ming-Fu says these should be in log files /reg/g/pcds/pds/tmo/logfiles/2020/10/manager between 3am and 6am on Oct. 18, although I grep'd for "except" and only found these two (at earlier times):

(ps-3.1.16) tmo-daq:scripts> grep -i except /reg/g/pcds/pds/tmo/logfiles/2020/10/manager
/reg/g/pcds/pds/tmo/logfiles/2020/10/17_14:34:14_drp-neh-cmp011:ami-manager.log:During handling of the above exception, another exception occurred:
/reg/g/pcds/pds/tmo/logfiles/2020/10/17_14:34:14_drp-neh-cmp011:ami-manager.log:During handling of the above exception, another exception occurred:
/reg/g/pcds/pds/tmo/logfiles/2020/10/17_23:48:20_drp-neh-cmp011:ami-manager.log:During handling of the above exception, another exception occurred:
/reg/g/pcds/pds/tmo/logfiles/2020/10/17_23:48:20_drp-neh-cmp011:ami-manager.log:During handling of the above exception, another exception occurred:

Gui regression tests

We need to be able to load saved graphs and execute them for regression tests.

Events/Sec calculated incorrectly?

It looks like events/second is calculated incorrectly in some circumstances. Saw 7217 just now and other large numbers? This was with 3 meb nodes and 4 cores per node.

Add InfiniteAverage Box

WindowAverage uses Pick-N to average arrays over a time window. This box would average over all arrays since the beginning of the run (so local worker nodes could keep their own sums and event-counts).

Handle missing data

AMI is still crashing when it sees missing data. Look at psana://exp=tmox43218,run=21 and the attached graph as an example.

fee.txt

manager status window

we should have a status window that shows how many graphs it has, which processes have connected, and other useful information.

Subgraphs

Would be useful to have subgraphs of boxes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.