{"id":22668477,"url":"https://github.com/lanl/scout","last_synced_at":"2025-04-12T11:06:07.625Z","repository":{"id":27153720,"uuid":"30622920","full_name":"lanl/scout","owner":"lanl","description":"Scout -- Domain Specific Language \u0026 Toolchain","archived":false,"fork":false,"pushed_at":"2016-02-18T23:05:26.000Z","size":176102,"stargazers_count":15,"open_issues_count":0,"forks_count":6,"subscribers_count":22,"default_branch":"devel","last_synced_at":"2024-06-27T00:19:52.466Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lanl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-11T00:52:01.000Z","updated_at":"2024-01-13T23:53:22.000Z","dependencies_parsed_at":"2022-06-26T05:04:39.516Z","dependency_job_id":null,"html_url":"https://github.com/lanl/scout","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fscout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fscout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fscout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fscout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lanl","download_url":"https://codeload.github.com/lanl/scout/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228911888,"owners_count":17990774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-09T15:15:21.970Z","updated_at":"2024-12-09T15:15:22.790Z","avatar_url":"https://github.com/lanl.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Scout: A Domain-Specific Language \u0026 Toolchain \n\nWelcome to the Scout Project! \n\n## Description \nScout is a proof-of-concept domain-specific language for exploring the combination of mesh-based \nscientific computation and *in situ* data analysis and visualization.  The toolchain is based on \nthe [LLVM compiler infrastructure](http::/llvm.org), including the [Clang](http:://clang.llvm/org) \nfront end, and the [LLDB](http://lldb.llvm.org) debugger.  More specifically, the language \nextends the C programming language to introduce mesh constructs and various supporting constructs.\nn\n## The Scout Programming Language\n\nThe Scout toolchain is still very much a *work-in-progress* and the documentation and source are \nboth under active development.  We use 64-bit Mac OS X 10.9.X and Linux systems (primarily the LTS \nreleases of Ubuntu / Linux Mint) as our primary development platforms.   \n\nScout is open-source software (released under LA-CC-15-063).  Los Alamos National Security, LLC (LANS) \nowns the copyright to Scout. The license is BSD-like with a \"modifications must be indicated\" clause. \nSee the [LICENSE](http://github.com/losalamos/scout/blob/master/License.md) file for the full details.\n\n**NOTE**: Scout is still very much a *work-in-progress* and the documentation and source are both \nunder active development.  We use Linux-based systems and Mac OS X 10.9.X as our primary software \ndevelopment platforms with a range of supported GPU architectures.  For CPU architectures we \nprimarily support x86 systems but have recently added support for ARM-based platforms. More details \non specific hardware support is included below. \n\n## Requirements \n\nThis section highlights the required software packages for a successful build and installation of\nScout.  At this point in time we only develop under Linux and Mac OS X and therefore can not provide \nsupport for building on Windows-based systems.  \n\nThe capabilities of the Scout Language rely heavily on the [LLVM](http://llvm.org) compiler \ninfrastructure; including [Clang](http://clang.llvm.org), [LLDB](http:://lldb.llvm.org) and the\n[compiler-rt](http://compiler-rt.llvm.org) low-level runtime.  As we modify each of these components\nthey are included within our release.  *Please make sure to read the individual license agreements for\neach of these packages.*\n\n### Operating System Support\n\n**Linux Systems**: As mentioned above, our primary development environments are Mac OS X 10.9.X and \nseveral varieties of Linux-based distributions.  A list of Linux releases that we monitor as part of \nour continuous integration development process are listed below: \n\n  * [Scientific Linux 6.2](https://www.scientificlinux.org)\n  * [Fedora Core 17](http://fedoraproject.org)\n  * [Ubuntu 12.04](http://www.ubuntu.com)\n\nEach of these platforms requires the installation of additional software development packages and \nlibraries.  This can be achieved used either the various software package management systems on \nthese platforms or by downloading and building them directly from source.  Further details on each\nrequired (and optional) package are provided below. \n\n**Mac OS X Systems**: For Mac OS X systems we primarily test using 10.9.X and 10.10.X and the latest \nversion of Apple's Xcode (currently 6.1).  While there are several package distribution management \nsystems for Mac OS X (e.g. macports) we typically avoid them and instead favor building and installing \nfrom source.  If you use of these systems you may experience differences and/or conflicts with the \ndetails that follow.\n\n#### Required Software Packages \n\nThe following software packages are required to produce a minimal version of Scout that targets \nCPU (x86) architectures (both single and multi-core):\n\n  * [CMake](http:://cmake.org) -- version 2.8.12 or later. \n  \n  * [Qt](http://qt-project.org) -- version 5.4\n\t\n  * [OpenGL 3.X or higher](http://opengl.org) -- We **strongly** recommend having access to a system \n    with a GPU capable of supporting hardware accelerated OpenGL.  We are currently exploring the \n\tuse of software-based OpenGL support but can not recommend that as a viable option at this point \n\tin time.  **NOTE** that we have primarily worked with NVIDIA GPUs for OpenGL support and are \n\tactively hardening support for AMD GPUs as well as beginning the initial exploration of both\n\tIntel's and ARM's GPU architectures. \n\n#### Optional Software Packages \n\nThese additional packages expand Scout's target architectures and can be used to generate code \nfor a mixed set of platforms from a single source file.  For details on the various architectures\nsupported by Scout see the Hardware section below. \n\n  * [NVIDA's CUDA](http://developer.nvidia.com/) -- we support CUDA version 6.X and Fermi- and \n    Kepler-class cards (*sorry, we haven't verified older GPU models are well supported*).\n\t\n  * **OpenCL** -- on platforms with AMD GPUs we support OpenCL-based code generation.  **NOTE**: \n    If our build configuration finds CUDA installed on your system OpenCL support will be disabled.  \n     \nOur build configuration process will attempt to discover if you have any of these GPU development \nenvironments installed and will add support for them automatically. If you are using a non-standard\ninstall location for these packages you can set the following environment variables prior to invoking\nthe build (more details below):\n\n  * `CUDA_DIR=/path/to/cuda/install`\n  \n### Building From Source \nIn the top-level directory of the source code there is a `Makefile` that will automate the process \nof creating an *out-of-source* build directory and running CMake.  After the configuration step is \ncompleted, this approach will begin the compilation of the full distribution.\n\nThis process is as simple as invoking \n\n\t$ make\n\t\nfrom the root of the distribution. \n\nTo allow finer control of the build configuration the following environment variables may be set \nprior to invoking `make`.\n\n  * `SC_BUILD_NTHREADS` -- Controls the use of a parallel build of the source.  Set this variable\n    to the number of make processes/threads to be executed.  This is extremely useful in speeding\n\tup the build process.  It not only helps to have a system with several process cores but also\n\ta lot of installed RAM -- a systems with several cores and limited memory can struggle through\n\ta parallel build. \n\t\n\t\t$ export SC_BUILD_NTHREADS=8      (compile with 8 build threads) \n\n  * `SC_BUILD_TYPE` -- Control whether a debug or release (optimized) build is used:\n\n\t\t$ export SC_BUILD_TYPE=DEBUG|RELEASE       (defaults to DEBUG)\n                \n  * `SC_BUILD_DIR` -- Controls both the name and location of the build directory:\n\n\t\t$ export SC_BUILD_DIR=/the/path/to/the/build\n                \n  * `SC_BUILD_CMAKE_FLAGS` -- (*Advanced*) This should primarily be used by those who have a detailed  \n    understanding of CMake and the configuration parameters within both Scout and LLVM.  The set of \n    provided flags will be passed to CMake as part of the configuration run.  Full details of this\n    using this option are currently beyond the scope of this document.\n\n### Acknowledgements \n\nThe Scout language and its supporting research activties are funded by the United States Departement \nof Energy, Office of Science, [Office of Advanced Scientific Computing Research](http://science.energy\n.gov/ascr/)\nand overseen by Dr. Lucy Nowell.\n\n  \n\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanl%2Fscout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanl%2Fscout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanl%2Fscout/lists"}