aboutsummaryrefslogtreecommitdiffstats
path: root/native/include
Commit message (Collapse)AuthorAge
* Remove unused field from QPA implementationBjoern Brandenburg2013-08-14
| | | | | | | | | | Silences a Clang++ warning/error: > In file included from src/edf/qpa.cpp:12: > include/edf/qpa.h:7:18: error: private field 'm' is not used [-Werror,-Wunused-private-field] > unsigned int m; > ^ > 1 error generated.
* Implement LP-based OMIP blocking analysisBjoern Brandenburg2013-07-12
|
* Fix broken demand calculationBjoern Brandenburg2013-05-22
| | | | | | | Felipe Cerqueira reported incorrect QPA results. The root cause was a corner case in the demand calculation. This patch fixes the underestimation of demand if time == deadline and adds a test case discovered by Felipe that triggered the bug.
* Add LP-based blocking analysis for FMLP+Bjoern Brandenburg2013-02-12
|
* Add LP-based blocking analysis for MPCPBjoern Brandenburg2013-02-12
|
* Add generic LP support for shared-memory protocolsBjoern Brandenburg2013-02-12
|
* Add support for dumping LPs to iostreamsBjoern Brandenburg2013-02-12
| | | | Quite handy when debugging LPs...
* C++ LP analysis: add LP debugging helperBjoern Brandenburg2013-02-12
| | | | Dump a LP solution to a stream for inspection.
* Refactor linprog_solve() into a proper functionBjoern Brandenburg2013-02-12
|
* Disable creation of new variables after creation of the objective functionBjoern Brandenburg2013-02-12
| | | | This can reveal bugs in constraints that accidentally include Ti.
* Switch to CPX (CPLEX C API) as default LP solverBjoern Brandenburg2013-02-12
| | | | Much faster than the alternatives, so use it when available.
* Implement CPLEX integration via C APIBjoern Brandenburg2013-02-12
| | | | | | | | Using the plain, old C API seems to be *much* faster. single: lp_dpcp_bounds::cpu_costs: total=19569.9ms last=93.2767ms average=88.9543ms count=220 lp_dflp_bounds::cpu_costs: total=21537.3ms last=102.459ms average=97.8969ms count=220
* Add GLPK IntegrationBjoern Brandenburg2013-02-12
| | | | | Add a bridge to the GLPK library. Availability is auto-discovered by the build system. Most of the code is solver-agnostic.
* Export the LP-based analysis of the DFLP/DPCPBjoern Brandenburg2013-02-12
| | | | | ...via Swig to Python. The actual Python API will be finalized later.
* Allow VarMapper to start at index other than 0Bjoern Brandenburg2013-02-12
| | | | This is in preparation of merged LPs.
* Add DPCP and DFLP linear program generationBjoern Brandenburg2013-02-12
| | | | | These files implement the generation and evaluation of linear programs that bound maximum s-aware pi-blocking under the DPCP and the DFLP.
* Add CPLEX integrationBjoern Brandenburg2013-02-12
| | | | | | | This patch introduces a concrete subclass of Solution that implements the actual solving of linear programs by means of invoking the CPLEX Concert Technology API. The project can still be compiled on systems that do not have CPLEX installed.
* Add simple C++ linear program representationBjoern Brandenburg2013-02-12
| | | | | | | - Constraints are expressed as lists of terms. - Linear programs consist of only equalities and less-than-or-equal constraints. - Solvers hide behind an abstract solution class that can evaluate linear expressions.
* Add unique IDs to TaskInfoBjoern Brandenburg2013-02-12
| | | | | The LP code generates variable IDs based on task identity. It's convenient to keep track of this explicitly.
* Simplify sharedres_types.h with iterator macrosBjoern Brandenburg2013-02-12
| | | | Explicit iterator handling is cumbersome. Hide it when possible.
* Extract sharedres_types.h from sharedres.hBjoern Brandenburg2013-02-12
| | | | | The LP code requires many of the same definitions. Therefore, this patch splits the reusable type definitions into an individual file to facilitate inclusion.
* Extract hash map hack from rw-task-fair.cppBjoern Brandenburg2013-02-12
| | | | | | | | Hashmaps will be needed by the LP code. Additionally, add definitions for hash maps with uint64_t keys. This is only relevant for legacy C++ libs as used on Mac OS X. On Linux, we use the newer C++ '11 STL implementation.
* Add benchmarking helper classBjoern Brandenburg2013-02-12
| | | | | CPUClock is useful for repeatedly measuring how long some piece of code executes.
* MPCP: accurately track per-processor priority ceilingsBjoern Brandenburg2013-02-12
| | | | | | | | The priority ceilings under the MPCP are defined in a way such that one processor has a slightly lower ceiling. This doesn't really affect the outcome much, but this patch changes the analysis to be exactly as defined for the sake of accuracy.
* MPCP: export gcs response-time boundsBjoern Brandenburg2013-02-12
| | | | | | This will be used by the new LP-based MPCP analysis. Also, report local blocking to Python and add a clarifying comment.
* Move get_priority_ceilings() from DPCP to common codeBjoern Brandenburg2013-02-12
| | | | | The LP-based analysis of the DPCP can reuse this, so make it available globally.
* Improvements to the GEL Piecewise Linear module: support for arbitrary GEL ↵Jeremy Erickson2013-02-04
| | | | schedulers in native code and easy max lateness computation.
* Use utilization cap instead of number of CPUs where applicableJeremy Erickson2012-12-27
|
* Add QPA EDF uniprocessor testBjoern Brandenburg2012-11-27
| | | | Based on Zhang and Burns (2009), "Schedulability Analysis for Real-Time Systems with EDF Scheduling", IEEE Transactions on Computers, Vol 58, No 9.
* Add bound_demand() to TaskSetBjoern Brandenburg2012-11-27
| | | | This corresponds to h(t) in Zhang and Burns (2009)'s QPA paper.
* Fix wrong #endif to silence compiler warningsBjoern Brandenburg2012-11-24
| | | | There should be no symbol after #endif.
* Added arbitrary-precision arithmetic to native moduleJeremy Erickson2012-10-29
|
* Initial GEL Piecewise Linear implementationJeremy Erickson2012-09-25
|
* C++: Properly consider priority ceilings in DPCP boundBjoern Brandenburg2012-05-17
| | | | The bound should not reflect requests executed by agents that can be preempted.
* C++: move shared RW locking defs into own fileBjoern Brandenburg2012-05-17
| | | | Part of refactoring sharedres.cpp.
* C++: Break out the phase-fair RW locks codeBjoern Brandenburg2012-05-16
| | | | Part of refactoring sharedres.cpp.
* C++: Break out the C-OMLP-KX codeBjoern Brandenburg2012-05-16
| | | | Part of refactoring sharedres.cpp.
* C++: Break out the P-OMLP code into own fileBjoern Brandenburg2012-05-16
| | | | Part of refactoring sharedres.cpp.
* C++: Break out the FMLP+ code into own fileBjoern Brandenburg2012-05-16
| | | | Part of refactoring sharedres.cpp.
* Move MPPC++: Break out the MPCP code into own fileBjoern Brandenburg2012-05-16
| | | | Part of refactoring sharedres.cpp.
* C++: Break out the DPCP code into own fileBjoern Brandenburg2012-05-16
| | | | Part of refactoring sharedres.cpp.
* Rename time types used in C++ schedulablity analysisBjoern Brandenburg2012-04-11
| | | | | | integral_t == integral time units fractional_t == fractions of integral time units This is hopefully less of an eyesore than mpq_class and mpz_class.
* Provide virtual dummy destructor for classes with virtual methodsBjoern Brandenburg2012-04-11
| | | | | Not strictly needed in this case, but it's better to follow established safe-programming conventions. This fixes some warnings.
* Remove unneeded const constraintsBjoern Brandenburg2012-04-11
| | | | | There's no point in declaring pass-by-value return types to be constant. This fixes a warning under gcc 4.2.1.
* Implement timeout in BaruahGEDFBjoern Brandenburg2012-04-11
| | | | | Give up after running for 5 seconds. This is almost never triggered, but once in a while this should help to catch a pseudo-polynomial excursion.
* Add OMLP k-exclusion blocking boundsBjoern Brandenburg2012-02-20
|
* Import refactored schedcat codebaseBjoern Brandenburg2012-02-02
Based on the code available at http://www.cs.unc.edu/~bbb/diss, this is a cleaned-up version of schedcat intended to serve as the basis for all further development. Notable improvements: more unit tests and a cleaner module structure.