{"action":"created","issue":{"url":"https://api.github.com/repos/trilinos/Trilinos/issues/431","repository_url":"https://api.github.com/repos/trilinos/Trilinos","labels_url":"https://api.github.com/repos/trilinos/Trilinos/issues/431/labels{/name}","comments_url":"https://api.github.com/repos/trilinos/Trilinos/issues/431/comments","events_url":"https://api.github.com/repos/trilinos/Trilinos/issues/431/events","html_url":"https://github.com/trilinos/Trilinos/issues/431","id":159647085,"number":431,"title":"Interfacing librsb into Epetra","user":{"login":"michelemartone","id":19857221,"avatar_url":"https://avatars.githubusercontent.com/u/19857221?v=3","gravatar_id":"","url":"https://api.github.com/users/michelemartone","html_url":"https://github.com/michelemartone","followers_url":"https://api.github.com/users/michelemartone/followers","following_url":"https://api.github.com/users/michelemartone/following{/other_user}","gists_url":"https://api.github.com/users/michelemartone/gists{/gist_id}","starred_url":"https://api.github.com/users/michelemartone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michelemartone/subscriptions","organizations_url":"https://api.github.com/users/michelemartone/orgs","repos_url":"https://api.github.com/users/michelemartone/repos","events_url":"https://api.github.com/users/michelemartone/events{/privacy}","received_events_url":"https://api.github.com/users/michelemartone/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/trilinos/Trilinos/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/trilinos/Trilinos/labels/Epetra","name":"Epetra","color":"eb6420"}],"state":"open","locked":false,"assignee":{"login":"mhoemmen","id":926747,"avatar_url":"https://avatars.githubusercontent.com/u/926747?v=3","gravatar_id":"","url":"https://api.github.com/users/mhoemmen","html_url":"https://github.com/mhoemmen","followers_url":"https://api.github.com/users/mhoemmen/followers","following_url":"https://api.github.com/users/mhoemmen/following{/other_user}","gists_url":"https://api.github.com/users/mhoemmen/gists{/gist_id}","starred_url":"https://api.github.com/users/mhoemmen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhoemmen/subscriptions","organizations_url":"https://api.github.com/users/mhoemmen/orgs","repos_url":"https://api.github.com/users/mhoemmen/repos","events_url":"https://api.github.com/users/mhoemmen/events{/privacy}","received_events_url":"https://api.github.com/users/mhoemmen/received_events","type":"User","site_admin":false},"assignees":[{"login":"mhoemmen","id":926747,"avatar_url":"https://avatars.githubusercontent.com/u/926747?v=3","gravatar_id":"","url":"https://api.github.com/users/mhoemmen","html_url":"https://github.com/mhoemmen","followers_url":"https://api.github.com/users/mhoemmen/followers","following_url":"https://api.github.com/users/mhoemmen/following{/other_user}","gists_url":"https://api.github.com/users/mhoemmen/gists{/gist_id}","starred_url":"https://api.github.com/users/mhoemmen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhoemmen/subscriptions","organizations_url":"https://api.github.com/users/mhoemmen/orgs","repos_url":"https://api.github.com/users/mhoemmen/repos","events_url":"https://api.github.com/users/mhoemmen/events{/privacy}","received_events_url":"https://api.github.com/users/mhoemmen/received_events","type":"User","site_admin":false},{"login":"maherou","id":1021003,"avatar_url":"https://avatars.githubusercontent.com/u/1021003?v=3","gravatar_id":"","url":"https://api.github.com/users/maherou","html_url":"https://github.com/maherou","followers_url":"https://api.github.com/users/maherou/followers","following_url":"https://api.github.com/users/maherou/following{/other_user}","gists_url":"https://api.github.com/users/maherou/gists{/gist_id}","starred_url":"https://api.github.com/users/maherou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maherou/subscriptions","organizations_url":"https://api.github.com/users/maherou/orgs","repos_url":"https://api.github.com/users/maherou/repos","events_url":"https://api.github.com/users/maherou/events{/privacy}","received_events_url":"https://api.github.com/users/maherou/received_events","type":"User","site_admin":false}],"milestone":null,"comments":19,"created_at":"2016-06-10T14:26:23Z","updated_at":"2016-07-25T17:01:08Z","closed_at":null,"body":"[rsb.hpp.txt](https://github.com/trilinos/Trilinos/files/309141/rsb.hpp.txt)\r\n[Epetra_CrsMatrix.h.txt](https://github.com/trilinos/Trilinos/files/309139/Epetra_CrsMatrix.h.txt)\r\n[Epetra_CrsMatrix.cpp.txt](https://github.com/trilinos/Trilinos/files/309140/Epetra_CrsMatrix.cpp.txt)\r\n@mhoemmen @maherou \r\n\r\nHi. After my talk at EUROTUG'16 on Apr. 18-20 2016 near Munich [ https://www.mhpc.mw.tum.de/index.php?id=38 ] and subsequent discussion with Michael and Mark I've been encouraged to propose an incremental integration of the sparse matrix type RSB (provided by librsb [ http://librsb.sourceforge.net/ ]) into Epetra.\r\nSo following such a minimalist approach I have modified a few lines in Epetra_CrsMatrix (from trilinos-12.6.1) to use librsb for: MV/MTV/SV/SM, in code delimited by the HAVE_EPETRA_RSB\r\npreprocessor symbol; and constructs in Epetra_CrsMatrix::FillComplete and in the copy constructor.\r\nSo the prototype I am providing creates an RSB copy of the matrix just for the purposes of using it in the operations above.\r\n\r\nI am also working on a proper \"Epetra_RsbMatrix\" class, but let's first see if this one here is able to sustain some tests for the above operations.\r\n\r\nThe way I suggest to build this is:\r\n - # get my / michele martone's GPG key\r\n   gpg --search EF1258B8\r\n - # download librsb from\r\n   https://sourceforge.net/projects/librsb/files/librsb-1.2.0-rc3.tar.gz/download\r\n   # download its signature from\r\n   https://sourceforge.net/projects/librsb/files/librsb-1.2.0-rc3.tar.gz.asc/download\r\n   # verify signature\r\n   gpg --verify librsb-1.2.0-rc3.tar.gz.asc\r\n   # build librsb\r\n   tar xzf librsb-1.2.0-rc3.tar.gz\r\n   cd      librsb-1.2.0-rc3\r\n   ./configure CFLAGS=\"-O3 -fPIC\" FCFLAGS=\"-O3 -fPIC\" --prefix=/opt/librsb\r\n   make\r\n   # quick check\r\n   make qtests\r\n   # long check (I recommend to skip it)\r\n   make  tests\r\n   make install\r\n - use attached version of Epetra_CrsMatrix.cpp and Epetra_CrsMatrix.h\r\n   and put attached rsb.hpp (the Epetra-agnostic C++ wrapper to librsb)\r\n   into e.g. /opt/librsb/include/\r\n - build Epetra including e.g. `/opt/librsb/bin/librsb-config --I_opts`\r\n - link with e.g. `/opt/librsb/bin/librsb-config --ldflags` -fopenmp -lm -lz\r\n\r\nI attach the source files I have used, with \".txt\" appended to the filename.\r\nThe rsb.hpp file is meant to become part of a future release of librsb.\r\n\r\nI am new here, so if there is a more practical approach to follow to provide this proof-of-concept test, please suggest it to me."},"comment":{"url":"https://api.github.com/repos/trilinos/Trilinos/issues/comments/235015183","html_url":"https://github.com/trilinos/Trilinos/issues/431#issuecomment-235015183","issue_url":"https://api.github.com/repos/trilinos/Trilinos/issues/431","id":235015183,"user":{"login":"mhoemmen","id":926747,"avatar_url":"https://avatars.githubusercontent.com/u/926747?v=3","gravatar_id":"","url":"https://api.github.com/users/mhoemmen","html_url":"https://github.com/mhoemmen","followers_url":"https://api.github.com/users/mhoemmen/followers","following_url":"https://api.github.com/users/mhoemmen/following{/other_user}","gists_url":"https://api.github.com/users/mhoemmen/gists{/gist_id}","starred_url":"https://api.github.com/users/mhoemmen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhoemmen/subscriptions","organizations_url":"https://api.github.com/users/mhoemmen/orgs","repos_url":"https://api.github.com/users/mhoemmen/repos","events_url":"https://api.github.com/users/mhoemmen/events{/privacy}","received_events_url":"https://api.github.com/users/mhoemmen/received_events","type":"User","site_admin":false},"created_at":"2016-07-25T17:01:08Z","updated_at":"2016-07-25T17:01:08Z","body":"> I think this is on the track you are on anyway, @mhoemmen, but we can have this new feature depend on C++11, but we cannot have Epetra depend on C++11, and any Epetra features that depend on C++11 should not be enabled by default.\r\n\r\n@jwillenbring That's exactly what I meant -- thanks for restating more clearly :-)\r\n\r\n"}}
{"actor":{"display_login":"mhoemmen"}}