Opened 5 years ago
Closed 5 years ago
#4462 closed defect (nonchimerax)
MemoryError despite seemingly moderate memory usage
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Volume Data | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Windows-10-10.0.18362
ChimeraX Version: 1.2.dev202103272340 (2021-03-27 23:40:01 UTC)
Description
This time it didn't crash until 64% memory. One thing; the file is an unsigned integer 8-bit file, but the error says "data type int32". Is this the internal representation of the data?
Log:
UCSF ChimeraX version: 1.2.dev202103272340 (2021-03-27)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
Unable to load numpy_formathandler accelerator from OpenGL_accelerate
> vr true
started SteamVR rendering
> open X:/TOXOPLASMA/CONOID_HEIGHT/protruded-eman/TPE-16-axy150u8.hdf
Opened TPE-16-axy150u8.hdf as #101, grid size 1024,1024,300, pixel 14.2, shown
at step 1, values uint8
> volume #101 region 0,0,0,1023,1023,299 step 4
> volume #101 region 0,0,0,1023,1023,299 step 4
> volume #101 step 1
> vr false
> volume #101 level 92
> volume #101 change image level 81,0 level 99.99,0.8 level 212,1
> color height #1 center 0,0,0 axis z palette rainbow
> color height #1 center 0,0,0 axis z palette rainbow
> color height #1 center 0,0,0 axis z palette rainbow
> close session
> open X:/TOXOPLASMA/CONOID_HEIGHT/protruded-eman/TPE-16-axy150u8.hdf
Opened TPE-16-axy150u8.hdf as #1, grid size 1024,1024,300, pixel 14.2, shown
at step 1, values uint8
> volume #1 region 0,0,0,1023,1023,299 step 4
> volume #1 region 0,0,0,1023,1023,299 step 4
> volume #1 step 1
> color height #1 center 0,0,0 axis z palette rainbow
> volume #1 level 92
> volume #1 change image level 81,0 level 99.99,0.8 level 212,1
> surface dust #1 size 200
> volume #1 level 91
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.
Traceback (most recent call last):
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\core\updateloop.py", line 73, in draw_new_frame
view.draw(check_for_changes = False)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\view.py", line 165, in draw
self._draw_scene(camera, drawings)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\view.py", line 214, in _draw_scene
self._update_projection(camera, vnum)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\view.py", line 886, in _update_projection
near_far = self.near_far_distances(camera, view_num)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\view.py", line 901, in near_far_distances
near, far = self._near_far_bounds(cp, vd)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\view.py", line 914, in _near_far_bounds
b = self.drawing_bounds(allow_drawing_changes = False)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\view.py", line 608, in drawing_bounds
dm.cached_drawing_bounds = b = self.drawing.bounds()
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 947, in bounds
dbounds = [d.bounds() for d in self.child_drawings()
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 947, in <listcomp>
dbounds = [d.bounds() for d in self.child_drawings()
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 947, in bounds
dbounds = [d.bounds() for d in self.child_drawings()
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 947, in <listcomp>
dbounds = [d.bounds() for d in self.child_drawings()
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 964, in bounds
sb = self.geometry_bounds()
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 990, in geometry_bounds
vshown = numpy.unique(self.triangles[tmask,:])
File "<__array_function__ internals>", line 5, in unique
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\numpy\lib\arraysetops.py", line 261, in unique
ret = _unique1d(ar, return_index, return_inverse, return_counts)
File "C:\Program Files\ChimeraX 1.2.dev202103272340\bin\lib\site-
packages\numpy\lib\arraysetops.py", line 314, in _unique1d
ar = np.asanyarray(ar).flatten()
MemoryError: Unable to allocate 697. MiB for an array with shape (182828412,)
and data type int32
OpenGL version: 3.3.0 NVIDIA 456.71
OpenGL renderer: GeForce GTX 1080/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: ASUS
Model: All Series
OS: Microsoft Windows 10 Pro (Build 18363)
Memory: 17,086,476,288
MaxProcessMemory: 137,438,953,344
CPU: 16 Intel(R) Core(TM) i7-6900K CPU @ 3.20GHz
OSLanguage: en-US
Locale: ('en_US', 'cp1252')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.9.0
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.12.5
cftime: 1.4.1
chardet: 3.0.4
ChimeraX-AddCharge: 1.0
ChimeraX-AddH: 2.1.4
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.12
ChimeraX-AtomicLibrary: 3.0
ChimeraX-AtomSearch: 2.0
ChimeraX-AtomSearchLibrary: 1.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.5.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.1
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.1
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.2.1
ChimeraX-CommandLine: 1.1.3
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.2.dev202103272340
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.1
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.1
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1
ChimeraX-DistUI: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.0
ChimeraX-Hbonds: 2.1
ChimeraX-Help: 1.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.0
ChimeraX-ImageFormats: 1.1
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-Label: 1.0
ChimeraX-ListInfo: 1.1
ChimeraX-Log: 1.1.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.0.2
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.0
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 1.1
ChimeraX-MDcrds: 2.2
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.3
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.0
ChimeraX-ModelPanel: 1.0.1
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0
ChimeraX-OpenCommand: 1.5
ChimeraX-PDB: 2.3.1
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0.1
ChimeraX-PubChem: 2.0.1
ChimeraX-ReadPbonds: 1.0
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.4
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SeqView: 2.3
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.0
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.0.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.3
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.0.1
ChimeraX-ToolshedUtils: 1.1
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.7.1
ChimeraX-uniprot: 2.1
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.0
ChimeraX-Zone: 1.0
colorama: 0.4.3
comtypes: 1.1.7
cxservices: 1.0
cycler: 0.10.0
Cython: 0.29.21
decorator: 4.4.2
distlib: 0.3.1
docutils: 0.16
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 2.10.0
html2text: 2020.1.16
idna: 2.10
ihm: 0.17
imagecodecs: 2020.5.30
imagesize: 1.2.0
ipykernel: 5.3.4
ipython: 7.18.1
ipython-genutils: 0.2.0
jedi: 0.17.2
Jinja2: 2.11.2
jupyter-client: 6.1.7
jupyter-core: 4.7.1
kiwisolver: 1.3.1
line-profiler: 2.1.2
lxml: 4.6.2
lz4: 3.1.0
MarkupSafe: 1.1.1
matplotlib: 3.3.2
msgpack: 1.0.0
netCDF4: 1.5.4
networkx: 2.5
numexpr: 2.7.3
numpy: 1.19.2
numpydoc: 1.1.0
openvr: 1.14.1501
packaging: 20.9
ParmEd: 3.2.0
parso: 0.7.1
pickleshare: 0.7.5
Pillow: 7.2.0
pip: 21.0.1
pkginfo: 1.5.0.1
prompt-toolkit: 3.0.18
psutil: 5.7.2
pycollada: 0.7.1
pydicom: 2.0.0
Pygments: 2.7.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5-commercial: 5.15.2
PyQt5-sip: 12.8.1
PyQtWebEngine-commercial: 5.15.2
python-dateutil: 2.8.1
pytz: 2021.1
pywin32: 228
pyzmq: 22.0.3
qtconsole: 4.7.7
QtPy: 1.9.0
RandomWords: 0.3.0
requests: 2.24.0
scipy: 1.5.2
setuptools: 50.3.2
sfftk-rw: 0.6.7.dev1
six: 1.15.0
snowballstemmer: 2.1.0
sortedcontainers: 2.2.2
Sphinx: 3.2.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2020.9.3
tinyarray: 1.2.3
tornado: 6.1
traitlets: 5.0.5
urllib3: 1.25.11
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.36.0
wheel-filename: 1.3.0
WMI: 1.5.1
Change History (6)
comment:1 by , 5 years ago
| Component: | Unassigned → Volume Data |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → MemoryError despite seemingly moderate memory usage |
comment:2 by , 5 years ago
follow-up: 3 comment:3 by , 5 years ago
I tried opening an old session file that had 9 maps open at once, and used to work. Bug report submitted.
On 4/6/21, 11:12 AM, "ChimeraX" <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
#4462: MemoryError despite seemingly moderate memory usage
----------------------------------+-------------------------
Reporter: m-schmid@… | Owner: Tom Goddard
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: Volume Data | Version:
Resolution: | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
----------------------------------+-------------------------
Comment (by Tom Goddard):
The memory error is making an int32 array of triangles (3 integer indices
into a list of vertices). So the int32 data type is unrelated to your
uint8 map data type. The problem surely is that ChimeraX is being limited
to 4 Gbytes on your machine with 16 Gbytes and we need to figure out why
Windows is limiting it.
--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4462#comment:2>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
follow-up: 4 comment:4 by , 5 years ago
Hi Mike, This is very likely a problem with your Windows 10 computer, nothing to do with ChimeraX. Windows 10 is simply not giving ChimeraX the memory it asks for even though it is using far less than the 16 Gbytes you have installed. Looking online there are various reasons this might happen. First is your Windows 10 Pro 32-bit or 64-bit? If it is 32-bit then no process can use more than 4 Gbytes. I didn't even know they make 32-bit operating systems anymore. If things used to work for you then unless Windows 10 got reinstalled it must be 64-bit. But check it. Next online people describe a msconfig setting that can limit maximum memory use. Here's an example of that discussion. You can check whether the maximum memory use is being limited. https://answers.microsoft.com/en-us/windows/forum/windows_10-performance-winpc/only-4gb-usable-of-16gb-on-windows-10-64-bit/93c2c8c0-867d-4882-bd16-778de7630cb6 <https://answers.microsoft.com/en-us/windows/forum/windows_10-performance-winpc/only-4gb-usable-of-16gb-on-windows-10-64-bit/93c2c8c0-867d-4882-bd16-778de7630cb6> Again I have no idea how that would have changed on your computer. Another problem people discuss online is that they have 16 Gbytes installed but apparently only 4 Gbytes can be used due to memory failure. Sometimes they reinstall the memory to get it to work. I think ChimeraX 1.1 used to work for you on these files. If you run ChimeraX 1.1 and it now gets out of memory errors, since ChimeraX 1.1 did not change, it is very likely that Windows 10 or computer somehow has a memory problem. There is a small possibility that you saved some setting like changing the maximum volume data cache size in ChimeraX that could increase memory use. But when you run ChimeraX it fails when Task Manager says not too much memory is being used -- so it all points to Windows 10 or the computer hardware having a memory problem. Tom
follow-up: 5 comment:5 by , 5 years ago
Hi- Thanks. Quite a few things to try. First I will try to run a ChimeraX earlier version on that session file. Well, that didn’t work either. Bug report(s?) sent. Next I’ll try rebooting the computer. Mike From: Tom Goddard <goddard@sonic.net> Date: Tuesday, April 6, 2021 at 3:34 PM To: "Schmid, Michael F." <m-schmid@slac.stanford.edu> Cc: "ChimeraX-bugs@cgl.ucsf.edu" <ChimeraX-bugs@cgl.ucsf.edu> Subject: Re: [ChimeraX] #4462: MemoryError despite seemingly moderate memory usage Hi Mike, This is very likely a problem with your Windows 10 computer, nothing to do with ChimeraX. Windows 10 is simply not giving ChimeraX the memory it asks for even though it is using far less than the 16 Gbytes you have installed. Looking online there are various reasons this might happen. First is your Windows 10 Pro 32-bit or 64-bit? If it is 32-bit then no process can use more than 4 Gbytes. I didn't even know they make 32-bit operating systems anymore. If things used to work for you then unless Windows 10 got reinstalled it must be 64-bit. But check it. Next online people describe a msconfig setting that can limit maximum memory use. Here's an example of that discussion. You can check whether the maximum memory use is being limited. https://answers.microsoft.com/en-us/windows/forum/windows_10-performance-winpc/only-4gb-usable-of-16gb-on-windows-10-64-bit/93c2c8c0-867d-4882-bd16-778de7630cb6 Again I have no idea how that would have changed on your computer. Another problem people discuss online is that they have 16 Gbytes installed but apparently only 4 Gbytes can be used due to memory failure. Sometimes they reinstall the memory to get it to work. I think ChimeraX 1.1 used to work for you on these files. If you run ChimeraX 1.1 and it now gets out of memory errors, since ChimeraX 1.1 did not change, it is very likely that Windows 10 or computer somehow has a memory problem. There is a small possibility that you saved some setting like changing the maximum volume data cache size in ChimeraX that could increase memory use. But when you run ChimeraX it fails when Task Manager says not too much memory is being used -- so it all points to Windows 10 or the computer hardware having a memory problem. Tom
comment:6 by , 5 years ago
| Resolution: | → nonchimerax |
|---|---|
| Status: | assigned → closed |
Rebooting the computer fixed the problem as reported in #4473.
Note:
See TracTickets
for help on using tickets.
The memory error is making an int32 array of triangles (3 integer indices into a list of vertices). So the int32 data type is unrelated to your uint8 map data type. The problem surely is that ChimeraX is being limited to 4 Gbytes on your machine with 16 Gbytes and we need to figure out why Windows is limiting it.