{"action":"created","issue":{"url":"https://api.github.com/repos/gap-system/gap/issues/125","labels_url":"https://api.github.com/repos/gap-system/gap/issues/125/labels{/name}","comments_url":"https://api.github.com/repos/gap-system/gap/issues/125/comments","events_url":"https://api.github.com/repos/gap-system/gap/issues/125/events","html_url":"https://github.com/gap-system/gap/issues/125","id":64640913,"number":125,"title":"Non-readonly types in HPCGAP causing slowdowns","user":{"login":"ChrisJefferson","id":811527,"avatar_url":"https://avatars.githubusercontent.com/u/811527?v=3","gravatar_id":"","url":"https://api.github.com/users/ChrisJefferson","html_url":"https://github.com/ChrisJefferson","followers_url":"https://api.github.com/users/ChrisJefferson/followers","following_url":"https://api.github.com/users/ChrisJefferson/following{/other_user}","gists_url":"https://api.github.com/users/ChrisJefferson/gists{/gist_id}","starred_url":"https://api.github.com/users/ChrisJefferson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ChrisJefferson/subscriptions","organizations_url":"https://api.github.com/users/ChrisJefferson/orgs","repos_url":"https://api.github.com/users/ChrisJefferson/repos","events_url":"https://api.github.com/users/ChrisJefferson/events{/privacy}","received_events_url":"https://api.github.com/users/ChrisJefferson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/gap-system/gap/labels/HPC-GAP","name":"HPC-GAP","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-03-26T21:43:19Z","updated_at":"2015-03-29T17:08:00Z","closed_at":null,"body":"I've been looking at why `g:=WreathProduct(MathieuGroup(9),Group((1,2)));;ConjugacyClassesSubgroups(g);;` is still slower in HPC-GAP. I think I have an idea based on line-by-line profiling (now functional in HPC-GAP). The big remaining issue is that `NewType` keeps not using the cache, which in turn means method selection is much more expensive.\r\n\r\nTo give an idea, in `g:=WreathProduct(MathieuGroup(9),Group((1,2)));;ConjugacyClassesSubgroups(g);;`\r\n\r\nOn the first call in a GAP session, NewType is called 220,122 times and there are 3,784 cache misses.\r\nOn a second call of the same code, NewType is called 218,010 times and there are 1,517 cache misses.\r\n\r\nIn HPCGAP the times called are very similar, but on 166,014 calls we purposefully avoid the cache, leading to 166,294 cache misses. SImilarly, on the second call we again purposefully avoid the cache and get 164,018 cache misses."},"comment":{"url":"https://api.github.com/repos/gap-system/gap/issues/comments/87444460","html_url":"https://github.com/gap-system/gap/issues/125#issuecomment-87444460","issue_url":"https://api.github.com/repos/gap-system/gap/issues/125","id":87444460,"user":{"login":"stevelinton","id":6358086,"avatar_url":"https://avatars.githubusercontent.com/u/6358086?v=3","gravatar_id":"","url":"https://api.github.com/users/stevelinton","html_url":"https://github.com/stevelinton","followers_url":"https://api.github.com/users/stevelinton/followers","following_url":"https://api.github.com/users/stevelinton/following{/other_user}","gists_url":"https://api.github.com/users/stevelinton/gists{/gist_id}","starred_url":"https://api.github.com/users/stevelinton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevelinton/subscriptions","organizations_url":"https://api.github.com/users/stevelinton/orgs","repos_url":"https://api.github.com/users/stevelinton/repos","events_url":"https://api.github.com/users/stevelinton/events{/privacy}","received_events_url":"https://api.github.com/users/stevelinton/received_events","type":"User","site_admin":false},"created_at":"2015-03-29T17:08:00Z","updated_at":"2015-03-29T17:08:00Z","body":"Subtype is not exotic. It is used whenever an object discovers that it has a new filter -- so whenever an attribute is computed."}}