text:
Practical Design Space Exploration
Luigi Nardi Stanford University David Koeplinger Stanford University Kunle Olukotun Stanford University
Multi-objective optimization is a crucial matter in computer systems design space exploration because real-world applications often rely on a trade-off between several objectives. Derivatives are usually not available or impractical to compute and the feasibility of an experiment can not always be determined in advance. These problems are particularly difficult when the feasible region is relatively small, and it may be prohibitive to even find a feasible experiment, let alone an optimal one.
We introduce a new methodology and corresponding software framework, HyperMapper 2.0, which handles multi-objective optimization, unknown feasibility constraints, and categorical/ordinal variables. This new methodology also supports injection of user prior knowledge in the search when available. All of these features are common requirements in computer systems but rarely exposed in existing design space exploration systems. The proposed methodology follows a white-box model which is simple to understand and interpret (unlike, for example, neural networks) and can be used by the user to better understand the results of the automatic search.
We apply and evaluate the new methodology to automatic static tuning of hardware accelerators within the recently introduced Spatial programming language, with minimization of design run-time and compute logic under the constraint of the design fitting in a target field programmable gate array chip. Our results show that HyperMapper 2.0 provides better Pareto fronts compared to state-of-the-art baselines, with better or competitive hypervolume indicator and with 8x improvement in sampling budget for most of the benchmarks explored.
Design problems are ubiquitous in scientific and industrial achievements. Scientists design experiments to gain insights into physical and social phenomena, and engineers design machines to execute tasks more efficiently. These design problems are fraught with choices which are often complex and high-dimensional and which include interactions that make them difficult for individuals to reason about. In software/hardware co-design, for example, companies develop libraries with tens or hundreds of free choices and parameters that interact in complex ways. In fact, the level of complexity is often so high that it becomes impossible to find domain experts capable of tuning these libraries [10] .
Typically, a human developer that wishes to tune a computer system will try some of the options and get an insight of the response surface of the software. They will start to fit a model in their head of how the software responds to the different choices. However, humans are good primarily at fitting continuous linear models. So, if we picture the space of choices with one choice per axis, a designer will be able to relate the different axis by lines, planes or, in general, hyperplanes or perhaps convex or concave shapes. When the response surface is complex, e.g. non-linear, non-convex, discontinuous, or multi-modal, a human designer will hardly be able to model this complex process, ultimately missing the opportunity of delivering high performance products.
Mathematically, in the mono-objective formulation, we consider the problem of finding a global minimizer of an unknown (black-box) objective function f:
x∗=argminx∈Xf(x) (1)
where X is some input design space of interest. The problem addressed in this paper is the optimization of a deterministic function f:X→R over a domain of interest that includes lower and upper bound constraints on the problem variables.
When optimizing a smooth function, it is well known that useful information is contained in the function gradient/derivatives which can be leveraged, for instance, by first order methods. The derivatives are often computed by hand-coding, by automatic differentiation, or by finite differences. However, there are situations where such first-order information is not available or even not well defined. Typically, this is the case for computer systems workloads that include many discrete variables, i.e., either categorical (e.g., boolean) or ordinal (e.g., choice of cache sizes), over which derivatives cannot even be defined. Hence, we assume in our applications of interest that the derivative of f is neither symbolically nor numerically available. This problem is referred to in the literature as derivative-free optimization (DFO) [10, 24] , also known as black-box optimization [12] and, in the computer systems community, as design-space exploration (DSE) [16, 17] .
RIOC var.
Constr.
GpyOpt
✗ ✗ ✗ ✗
OpenTuner
✗ ✓ ✗ ✗
✗ ✗ ✓ ✗
Hyperopt
✗ ✓ ✗ ✓
Hyperband
GPflowOpt
✓ ✗ ✓ ✗
BOHB
HyperMapper
Table 1: Derivative-free optimization software taxonomy. Multi notes if the software is multi-objective or not. RIOC var. says if the software supports all Real, Int, Ordinal and Categorical variables. Constr. refers to inequality constraints that define a feasible region that are used in the optimization process. Prior represents the ability of the software to inject prior knowledge in the search.
In addition to objective function evaluations, many optimization programs have similarly expensive evaluations of constraint functions. The set of points where such constraints are satisfied is referred to as the feasibility set. For example, in computer micro-architecture, fine-tuning the particular specifications of a CPU (e.g., L1-Cache size, branch predictor range, and cycle time) need to be carefully balanced to optimize CPU speed, while keeping the power usage strictly within a pre-specified budget. A similar example is in creating hardware designs for field-programmable gate arrays (FPGAs). FPGAs are a type of reconfigurable logic chip with a fixed number of units available to implement circuits. Any generated design must keep the number of units strictly below this resource budget to be implementable on the FPGA. In these examples, feasibility of an experiment cannot be checked prior to termination of the experiment; this is often referred to as unknown feasibility in the literature [14] . Also note that the smaller the feasible region, the harder it is to check if an experiment is feasible (and even more costly to check optimality [14] ).
While the growing demand for sophisticated DFO methods has triggered the development of a wide range of approaches and frameworks, none to date are featured enough to fully address the complexities of design space exploration and optimization in the computer systems domain. To address this problem, we introduce a new methodology and a framework dubbed HyperMapper 2.0. HyperMapper 2.0 is designed for the computer systems community and can handle design spaces consisting of multiple objectives, categorical/ordinal variables, unknown constraints, and exploitation of user prior knowledge. To aid comparison, we provide a list of existing tools and the corresponding taxonomy in Table 1. Our framework uses a model-based algorithm, i.e., construct and utilize a surrogate model of f to guide the search process. A key advantage of having a model, and more specifically a white-box model, is that the final surrogate of f can be analyzed by the user to understand the space and learn fundamental properties of the application of interest.
As shown in Table 1, HyperMapper 2.0 is the only framework to provide all the features needed for a practical design-space exploration software in computer systems applications. The contributions of this paper are:
A methodology for multi-objective optimization that deals with categorical and ordinal variables, unknown constraints, and exploitation of user prior knowledge when available.
A validation of our methodology by providing experimental results as applied to accelerator design.
An integration of our solution in a full, production-level compiler toolchain.
An open-source framework dubbed HyperMapper 2.0 implementing the newly introduced methodology, designed to be simple and user-friendly.
The remainder of this paper is organized as follows: Section 2 provides a problem statement and background on this work methodology. In Section 3, we describe our methodology and framework. In Section 4 we present our experimental evaluation. Section 5 discusses related work. We conclude in Section 6 with a brief discussion of future work.
In this section, we provide the notation and basic concepts used in the paper. We describe the mathematical formulation of the mono-objective optimization problem with feasibility constraints. We then expand this to a definition of the multi-objective optimization problem and provide background on randomized decision forests [8] .
2.1 Unknown Feasibility Constraints
Mathematically, in the mono-objective formulation, we consider the problem of finding a global minimizer (or maximizer) of an unknown (black-box) objective function f under a set of constraint functions ci:
x∗=argminx∈X f(x)
subject to ci(x)≤bi,i=1,…,q,
where X is some input design space of interest and ci are q unknown constraint functions. The problem addressed in this paper is the optimization of a deterministic function f:X→R over a domain of interest that includes lower and upper bounds on the problem variables.
The variables defining the space X can be real (continuous), integer, ordinal, and categorical. Ordinal parameters have a domain of a finite set of values which are either integer and/or real values. For example, the sets {1,5,8} and {3.4,2.5,6,9.1} are possible domains of ordinal parameters. Ordinal values must have an ordering by the less-than operator. Ordinal and integer cases are also referred to as discrete variables. Categorical parameters also have domains of a finite set of values but have no ordering requirement. For example, sets of strings describing some property like {true,false} and {car,truck,motorbike} are categorical domains. The primary benefit of encoding a variable as an ordinal is that it can allow better inferences about unseen parameter values. With a categorical parameter, the knowledge of one value does not tell one much about other values, whereas with an ordinal value we would expect closer values (with respect to the ordering) to be more related.
We assume that the derivative of f is not available, and that bounds, such as Lipschitz constants, for the derivative of f is also unavailable. Evaluating feasibility is often in the same order of expense as evaluating the objective function f. As for the objective function, no particular assumptions are made on the constraint functions.
2.2 Multi-Objective Optimization: Problem Statement
A pictorial representation of a multi-objective problem is shown in Figure 1. On the left, a three-dimensional design space is composed by one ordinal (p1), one real (p2), and one categorical (p3) variable. The red dots represent samples from this search space. The multi-objective function f maps this input space to the output space on the right, also called the optimization space. The optimization space is composed by two optimization objectives (o1 and o2). The blue dots correspond to the red dots in the left via the application of f. The arrows Min and Max represent the fact that we can minimize or maximize the objectives as a function of the application. Optimization will drive the search of optima points towards either the Min or Max of the right plot.
Figure 1: Example of a multi-objective space. The multi-objective function f maps each point in the 3-dimensional design space on the left to the optimization space on the right.
Formally, let us consider a multi-objective optimization (minimization) over a design space X⊆Rd. We define f:X→Rp as our vector of objective functions f=(f1,…,fp), taking x as input, and evaluating y=f(x). Our goal is to identify the Pareto frontier of f; that is, the set Γ⊆X of points which are not dominated by any other point, i.e., the maximally desirable x which cannot be optimized further for any single objective without making a trade-off. Formally, we consider the partial order in Rp: y≺y′ iff ∀i∈[p],yi⩽y′i and ∃j,yj<y′j, and define the induced order on X: x≺x′ iff f(x)≺f(x′). The set of minimal points in this order is the Pareto-optimal set Γ={x∈X:∄x′ such that x′≺x}.
We can then introduce a set of inequality constraints c(x)=(c1(x),…,cq(x)), b=(b1,…,bq) to the optimization, such that we only consider points where all constraints are satisfied (ci(x)⩽bi). These constraints directly correspond to real-world limitations of the design space under consideration. Applying these constraints gives the constrained Pareto
Γ={x∈X:∀i⩽q,ci(x)⩽bi}
where ∄x′∈X such that% ci(x′)⩽bi and x′≺x
Similarly to the mono-objective case in [13] , we can define the feasibility indicator function Δi(x)∈0,1 which is 1 if ci(x)⩽bi, and 0 otherwise. A design point where Δi(x)=1 is termed feasible. Otherwise, it is called infeasible.
We aim to identify Γ with the fewest possible function evaluations, solving a sequential decision problem and constructing a strategy X––:f↦{X1,X2,X3,…} to iteratively generate the next Xn+1∈X to evaluate. If the evaluation Xi is not very expensive then it is possible to construct a strategy that, for each sequential step, runs multiple evaluations, i.e., a batch of evaluations. In this case it is standard practice to warm-up the strategy with some previously sampled points, using sampling techniques from the design of experiments literature [26] .
It is worth noting that, while infeasible points are never considered our best experiment, they are still useful to add to our set of performed experiments to improve the probabilistic model posteriors. Practically speaking, infeasible samples help to determine the shape and descent directions of c(x), allowing the probabilistic model to discern which regions are more likely to be feasible without actually sampling there. The fact that we do not need to sample in feasible regions to find them is a property that is highly useful in cases where the feasible region is relatively small, and uniform sampling would have difficulty finding these regions.
As an example, in this paper, we evaluate the compiler optimization case for targeting FPGAs. In this case, p=2, q=1, f1(x)=Cycles(x) (number of total cycles, i.e., runtime), f2(x)=Logic(x) (logic utilization, i.e., quantity of logic gates used) in percentage, and Δ1(x)∈0,1 represents whether the design point x fits in the target FPGA board.
2.3 Randomized Decision Forests
A decision tree is a non-parametric supervised machine learning method widely used to formalize decision making processes across a variety of fields. A randomized decision tree is an analogous machine learning model, which "learns" how to regress (or classify) data points based on randomly selected attributes of a set of training examples. The combination of many weak regressors (binary decisions) allows approximating highly non-linear and multi-modal functions with great accuracy. Randomized decision forests [8, 11] combine many such decorrelated trees based on the randomization at the level of training data points and attributes to yield an even more effective supervised regression and classification model.
A decision tree represents a recursive binary partitioning of the input space, and uses a simple decision (a one-dimensional decision threshold) at each non-leaf node that aims at maximizing an "information gain" function. Prediction is performed by "dropping" down the test data point from the root, and letting it traverse a path decided by the node decisions, until it reaches a leaf node. Each leaf node has a corresponding function value (or probability distribution on function values), adjusted according to training data, which is predicted as the function value for the test input. During training, randomization is injected into the procedure to reduce variance and avoid overfitting. This is achieved by training each individual tree on randomly selected subsets of the training samples (also called bagging), as well as by randomly selecting the deciding input variable for each tree node to decorrelate the trees.
A regression random forest is built from a set of such decision trees where the leaf nodes output the average of the training data labels and where the output of the whole forest is the average of the predicted results over all trees. In our experiments, we train separate regressors to learn the mapping from our input parameter space to each output variable.
It is believed that random forests are a good model for computer systems workloads [15, 7] . In fact, these workloads are often highly discontinuous, multi-modal, and non-linear [21] , all characteristics that can be captured well by the space partitioning behind a decision tree. In addition, random forests naturally deal with categorical and ordinal variables which are important in computer systems optimization. Other popular models like Gaussian processes [23] are less appealing for these type of variables. Additionally, a trained random forest is a "white box" model which is relatively simple for users to understand and to interpret (as compared to, for example, neural network models, which are more difficult to interpret).
3.1 Injecting Prior Knowledge to Guide the Search
Here we consider the probability densities and distributions that are useful to model computer systems workloads. In these type of workloads the following should be taken into account:
the range of values for a variable is finite.
the density mass can be uniform, bell-shaped (Gaussian-like) or J-shaped (decay or exponential-like).
For these reasons, in HyperMapper 2.0 we propose the Beta distribution as a model for the search space variables. The following three properties of the Beta distribution make it especially suitable for modeling ordinal, integer and real variables; the Beta distribution:
has a finite domain;
can flexibly model a wide variety of shapes including a bell-shape (symmetric or skewed), U-shape and J-shape. This is thanks to the parameters α and β (or a and b) of the distribution;
has probability density function (PDF) given by:
f(x|α,β)=Γ(α+β)Γ(α)Γ(β)xα−1(1−x)β−1 (2)
for x∈[0,1] and α,β>0, where Γ is the Gamma function. The mean and variance can be computed in closed form.
Note that the Beta distribution has samples that are confined in the interval [0,1]. For ordinal and integer variables, HyperMapper 2.0 automatically rescales the samples to the range of values of the input variables and then finds the closest allowed value in the ones that define the variables.
For categorical variables (with K modalities) we use a probability distribution, i.e., instead of a density, that can be easily specified as pairs of (xk, pk), where the set xk represents the k values of the variable and pk is the probability associated to each of them with ∑Kk=1pk=1.
Figure 2: Beta distribution shapes in HyperMapper 2.0.
In Figure 2 we show Beta distributions with parameters α and β selected to suit computer systems workloads. We have selected four shapes as follows:
Uniform (α=1,β=1): used as a default if the user has no prior knowledge on the variable.
Gaussian (α=3,β=3): when the user thinks that it is likely that the optimum value for that variable is located in the center but still wants to sample from the whole range of values with lower probability at the borders. This density is reminiscent of an actual Gaussian distribution, though it is finite.
Decay (α=0.5,β=1.5): used when the optimum is likely located at the beginning of the range of values. This is similar in shape to the log-uniform distribution as in [6, 5]
Exponential (α=1.5,β=0.5): used when the optimum is likely located at the end of the range of values. This is similar in shape to the drawn exponentially distribution as in [5]
3.2 Sampling with Categorical and Discrete Parameters
We first warm-up our model with simple random sampling. In the design of experiments (DoE) literature [26] , this is the most commonly used sampling technique to warm-up the search. When prior knowledge is used, samples are drawn from each variable's prior distribution, or the uniform distribution by default if no prior knowledge is provided.
3.3 Active Learning
Active learning is a paradigm in supervised machine learning which uses fewer training examples to achieve better prediction accuracy by iteratively training a predictor, and using the predictor in each iteration to choose the training examples which will increase its accuracy the most. Thus the optimization results are incrementally improved by interleaving exploration and exploitation steps. We use randomized decision forests as our base predictors created from a number of sampled points in the parameter space.
The application is evaluated on the sampled points, yielding the labels of the supervised setting given by the multiple objectives. Since our goal is to accurately estimate the points near the Pareto optimal front, we use the current predictor to provide performance values over the parameter space and thus estimate the Pareto fronts. For the next iteration, only parameter points near the predicted Pareto front are sampled and evaluated, and subsequently used to train new predictors using the entire collection of training points from current and all previous iterations. This process is repeated over a number of iterations forming the active learning loop. Our experiments in Section 4 indicate that this guided method of searching for highly informative parameter points in fact yields superior predictors as compared to a baseline that uses randomly sampled points alone. By iterating this process several times in the active learning loop, we are able to discover high-quality design configurations that lead to good performance outcomes.
Figure 3: Active learning with unknown feasibility constraints.
Data: Design space X, warm-up sampling size N, maxAL is the maximum samples in an active learning iteration.
Result: Pareto front P.
1 Warm-up ← RS; Xout← Warm-up N distinct configurations from X;
2 Yobj1,Yobj2,Yfea←Evaluate(Xout);
3 Mobj1←Fit_RF_Regressor(Xout,Yobj1);
5 Mfea←Fit_RF_Classifier(Xout,Yfea);
6 P←Predict_Pareto(Mobj1,Mobj2,Mfea,X,Xout);
7 i←0;
8 while (P−Xout≠∅) and (i<maxAL) do
9 ¯¯¯¯¯Xout←P−Xout;
10 ¯¯¯¯Yobj1,¯¯¯¯Yobj2,¯¯¯¯Yfea←Evaluate(¯¯¯¯¯Xout);
11 Xout←Xout∪¯¯¯¯¯Xout;
12 Yobj1←Yobj1∪¯¯¯¯Yobj1;
14 Yfea←Yfea∪¯¯¯¯Yfea;
15 Mobj1←Fit_RF_Regressor(Xout,Yobj1);
17 Mfea←Fit_RF_Classifier(Xout,Yfea);
18 P←Predict_Pareto(Mobj1,Mobj2,Mfea,X,Xout);
19 i←i+1;
21 end while
22return P;
Algorithm 1 Pseudo-code for HyperMapper 2.0 optimizing a two-objective (obj1 and obj2) application with one feasibility constraint (fea). − denotes set difference, ∪ denotes set union.
Algorithm 1 shows the pseudo-code of the model-based search algorithm used in HyperMapper 2.0. Figure 3 shows a corresponding graphical representation of the algorithm. The while loop on line 1 in Algorithm 1 is the active learning loop, represented by the big loop in the preprocessing box of Figure 3. The user specifies a maximum number of active learning iterations given by the variable maxAL. The function Fit_RF_Regressor() at lines 1, 1, 1 and 1 trains random forest regressors Mobj1 and Mobj2 which are the surrogate models to predict the objectives given a parameter vector. We train p separate models, one for each objective (p=2 in Algorithm 1). The random forest regressor is represented by the box "Regressor" in Figure 3.
The function Fit_RF_Classifier() on lines 1 and 1 trains a random forest classifier Mfea to predict if a parameter vector is feasible or infeasible. The classifier becomes increasingly accurate during active learning. Using a classifier to predict the infeasible parameter vectors has proven to be very effective as later shown in Section 4.3. The random forest classifier is represented by the box "Classifier (Filter)" in Figure 3. The function Predict_Pareto on lines 1 and 1 filters the parameter vectors that are predicted infeasible from X before computing the Pareto, thus dramatically reducing the number of function evaluations. This function is represented by the box "Compute Valid Predicted Pareto" in Figure 3.
For sake of space some details are not shown in Algorithm 1. For example, the while loop on line 1 is limited to M evaluations per active learning iteration. When the cardinality |P−Xout|>M, a maximum of M samples are selected uniformly at random from the set P−Xout for evaluation. In the case where |P−Xout|<M, a number of parameter vector samples M−|P−Xout| is drawn uniformly at random without repetition. This ensures exploration analogous to the ϵ-greedy algorithm in the reinforcement learning literature [32] . ϵ-greedy is known to provide balance between the exploration-exploitation trade-off.
3.4 Pareto Wall
In Algorithm 1 lines 1 and 1, the function Predict_Pareto eliminates the Xout samples from X before computing the Pareto front. This means that the newly predicted Pareto front never contains previously evaluated samples and, by consequence, a new layer of Pareto front is considered at each new iteration. We dub this multi-layered approach the Pareto Wall because we consider one Pareto front per active learning iteration, with the result that we are exploring several adjacent Pareto frontiers. Adjacent Pareto frontiers can be seen as a thick Pareto, i.e., a Pareto Wall. The advantage of exploring the Pareto Wall in the active learning loop is that it minimizes the risk of using a surrogate model which is currently inaccurate. At each active learning step, we search previously unexplored samples which, by definition, must be predicted to be worse than the current approximated Pareto front. However, in cases where the predictor is not yet very accurate, some of these unexplored samples will often dominate the approximated Pareto, leading to a better Pareto front and an improved model.
3.5 The HyperMapper 2.0 Framework
HyperMapper 2.0 is written in Python and makes use of widely available libraries, e.g., scikit-learn and pyDOE. It will be released open source soon. The HyperMapper 2.0 setup is via a simple json file. A light interface with third party softwares used for optimization is also necessary: templates for Python and Scala are provided in the repository. HyperMapper 2.0 is able to run in parallel on multi-core machines the classifiers and regressors as well as the computation of the Pareto front to accelerate the active learning iterations.
We first evaluate HyperMapper 2.0 applied to the recently proposed Spatial compiler [19] for designing application hardware accelerators on FPGAs.
4.1 The Spatial Programming Language
Figure 4: An overview of the phases of the compiler for the Spatial application accelerator design language. HyperMapper 2.0 interfaces at the beginning and ending of phase 2 to drive accelerator design space exploration and the selection of design parameter values.
Spatial [19] is a domain-specific language (DSL) and corresponding compiler for the design of application accelerators on reconfigurable architectures. The Spatial frontend is tailored to present programmers with a high level of abstraction for hardware design. Control in Spatial is expressed as nested, parallelizable loops, while data structures are allocated based on their placement in the target hardware's memory hierarchy. The language also includes support for design parameters to express values which do not change the behavior of the application and which can be changed by the compiler. These parameters can be used to express loop tile sizes, memory sizes, loop unrolling factors, and the like.
As shown in Figure 4, the Spatial compiler lowers user programs into synthesizable Chisel [2] designs in three phases. In the first phase, it performs basic hardware optimizations and estimates a possible domain for each design parameter in the program. In the second phase, the compiler computes loop pipeline schedules and on-chip memory layouts for some given value for each parameter. It then estimates the amount of hardware resources and the runtime of the application. When targeting an FPGA, the compiler uses a device-specific model to estimate the amount of compute logic (LUTs), dedicated multipliers (DSPs), and on-chip scratchpads (BRAMs) required to instantiate the design. Runtime estimates are performed using similar device-specific models with average and worst case estimates computed for runtime-dependent values. Runtime is typically reported in clock cycles.
In the final phase of compilation, the Spatial compiler unrolls parallelized loops, retimes pipelines via register insertion, and performs on-chip memory layout and compute optimizations based on the analyses performed in the previous phase. Finally, the last pass generates a Chisel design which can be synthesized and run on the target FPGA.
Space Size
BlackScholes 4 7.68×104
K-Means 6 1.04×106
OuterProduct 5 1.66×107
DotProduct 5 1.18×108
GEMM 7 2.62×108
TPC-H Q6 5 3.54×109
GDA 9 2.40×1011
Table 2: Spatial benchmarks and design space size.
4.2 HyperMapper in the Spatial Compiler
The collection of design parameters in a Spatial program, together with their respective domains, yields a hardware design space. The second phase of the compiler gives a way to estimate two cost metrics - performance and FPGA resource utilization - for a given design in this space. Existing work on Spatial has evaluated two methods for design space exploration. The first method heuristically prunes the design space and then performs randomized search with a fixed number of samples. The heuristics, first established by Spatial's predecessor [20] , help to eliminate obviously bad points within the design space prior to random search; the pruning is provided by expert FPGA developers. This is, in essence, a one-time hint to guide search. The second method evaluated the feasibility of using HyperMapper 1.0 [7] to drive exploration, concluding that the tool was promising but still required future development. In some cases, HyperMapper 1.0 performed poorly without a feasibility classifier as the search often focused on infeasible regions of the design space [19] .
Spatial's compiler includes hooks at the beginning and end of its second phase to interface with external tools for design space exploration. As shown in Figure 4, the compiler can query at the beginning of this phase for parameter values to evaluate. Similarly, the end of the second phase has hooks to output performance and resource estimates. HyperMapper 2.0 interfaces with these hooks to receive cost estimates, build a surrogate model, and drive search of the space.
In this work, we evaluate design space exploration when Spatial is targeting an Altera Stratix V FPGA with 48 GB of dedicated DRAM and a peak memory bandwidth of 76.8 GB/sec (an identical approach could be used for any FPGA target). We list the benchmarks we evaluate with HyperMapper 2.0 in Table 2. These benchmarks are a representative subset of those previously used to evaluate the Spatial compiler [19] . We use random search with heuristic pruning as our comparison baseline, as this is the most used and evaluated search technique with the compiler.
4.3 Feasibility Classifier Effectiveness
We address the question of the effectiveness of the feasibility classifier in the Spatial use case. Of all the hyperparameters defined for binary random forests [22] , the parameters that usually have the most impact on the performance of the random forest classifier are: n_estimators, max_depth, max_features and class_weight. We run an exhaustive search to fine-tune the binary random forest classifier hyperparameters and test its performance. The range of values we considered for these parameters is shown in Table 3. This defines a comprehensive space of 81 possible choices, small enough that it can be explored using exhaustive search. We dub these choices of parameter vectors as config_1 to config_81 on the x axis.
n_estimators
[10, 100, 1000]
max_depth
[None, 4, 8]
max_features
['auto', 0.5, 0.75]
class_weight
[{T: 0.50, F: 0.50}, {T: 0.75, F: 0.25}, {T: 0.9, F: 0.1}]
Table 3: Random forest classifier hyperparameter tuning search space.
We perform a 5-fold cross-validation using the data collected by HyperMapper 2.0 as training data and report validation recall averaged over the 5 folds. The goal of this optimization procedure is for the binary classification to maximize recall. We want to maximize recall, i.e., true positivestrue positives+false negatives, because it is important to not throw away feasible points that are misclassified as being infeasible and that can potentially be good fits. Precision, i.e., true positivestrue positives+false positives, is less important as there is smaller cost associated with classifying an infeasible parameter vector as feasible. In this case the only downside is that some samples will be wasted because we are evaluating samples that are infeasible, which is not a major drawback.
Max mean Max median Max min 0.784 0.826 0.600
(a) Recall at 0 active learning iterations.
(b) Recall at 50 active learning iterations.
Figure 7: Random forest feasibility binary classifier 5-fold cross-validation recall over all benchmarks. The first 25 hyperparameter configurations of the classifier are shown. "Max mean", "Max median", and "Max min" are the maximum across the mean, median, and minimum recall scores for all 7 benchmarks, respectively.
Figure 7 reports the recall of the random forest classifier across the 7 benchmarks and hyperparameter configurations. For sake of space, we only report the first 25 configurations, but the trend persists across all configurations. Figure (a)a shows the recall just after the warm-up sampling and before the first active learning iteration (Algorithm 1 line 1). Figure (b)b shows the recall after 50 active learning iterations (Algorithm 1 line 1 after 50 iterations of the while loop, where each iteration is evaluating 100 samples). The recall goes up during the active learning loop implying that the feasibility constraint is being predicted more accurately over time. The tables in Figure 7 show this general performance trend with the max mean improving from 0.784 to 0.967.
In Figure (a)a the recall is low prior to the start of active learning. The configuration that scores best (the maximum score of the minimum scores across the different configurations) has a minimum score of 0.6 on the 7 benchmarks. The configuration is: {'class_weight':{T:0.75,F:0.25}, 'max_depth':8, 'max_features':'auto', 'n_estimators':10}. The recall of this configuration ranges from a minimum of 0.6 for TPC-H Q6 to a maximum of 1.0 on BlackScholes with mean and standard deviation of 0.735 and 0.15 respectively.
In Figure (b)b the recall is high after 50 iterations of active learning. There are two configurations that score best, with a minimum score of 0.886 on the 7 benchmarks. The configurations are: {'class_weight':{T:0.75,F:0.25}, 'max_depth':None, 'max_features':'0.75', 'n_estimators':10} and {'class_weight':{T:0.9,F:0.1}, 'max_depth':None, 'max_features':'0.75', 'n_estimators':10}. In general, most of the configurations are very close in terms of recall and the default random forest configuration scores high, perhaps suggesting that the random forest for these kind of workloads does not need a major tuning effort. The statistics of these configurations range from a minimum of 0.886 for DotProduct to a maximum of 1.0 on BlackScholes with mean and standard deviation of 0.964 and 0.04 respectively.
Figure 8 shows the predicted Pareto fronts of GDA, the benchmark with the largest design space, with and without the binary classifier for feasibility constraints. In both cases, we use plain random sampling to warm-up the optimization with 1,000 samples followed by 5 iterations of active learning.
Figure 8: Effect of the binary constraint classifier on the GDA benchmark. HyperMapper 2.0, with feasibility classifier, is shown as black (feasible) and green (infeasible). The heuristic baseline is shown as blue (feasible) and red (infeasible). The final approximated Pareto fronts are shown as black (our approach) and blue (baseline) curves.
The red dots representing the invalid points for the case without feasibility constraints are spread farther from the corresponding Pareto frontier while the green dots for the case with constraints are close to the respective frontier. This happens because the non-constrained search focuses on seemingly promising but unrealistic points. The constrained search is focused in a region that is more conservative but feasible. The effect of the feasibility constraint is apparent in its improved Pareto front, which almost entirely dominates the approximated Pareto front resulting from unconstrained search.
4.4 Optimum vs. Approximated Pareto
We next take the smallest benchmarks, BlackScholes, DotProduct and OuterProduct, and run exhaustive search to compare the approximated Pareto front computed by HyperMapper 2.0 with the true optimal one. This can be achieved only for such small benchmarks as exhaustive search is feasible. However, even on these small spaces, exhaustive search requires 6 to 12 hours when parallelized across 16 CPU cores. In our framework, we use random sampling to warm-up the search with 1000 random samples followed by 5 active learning iterations of about 500 samples total.
Comparisons are synthesized in Figure 9. The optimal Pareto front is very close to the approximated one provided by HyperMapper 2.0, showing our software's ability to recover the optimal Pareto front on these benchmarks. About 1500 total samples are required to recover the Pareto optimum, about the same number of samples for BlackScholes and 66 times fewer for OuterProduct and DotProduct compared to the prior Spatial design space exploration approach using pruning and random sampling.
BlackScholes OuterProduct DotProduct
Figure 9: Optimum versus approximated Pareto front for the BlackScholes (left, y-axis in log scale), OuterProduct (center, y-axis in log scale) and DotProduct (right) benchmarks. The x-axis is compute logic, reported as a percentage of the total LUT capacity of the Stratix V FPGA. The y-axis is the total cycles taken to run the benchmark. The approximated Pareto front is computed by HyperMapper 2.0 and the real Pareto is computed by exhaustive search. The invalid (or infeasible) samples are samples that would not be possible to synthesize on the FPGA given the hardware constraints.
4.5 Hypervolume Indicator
We next show the hypervolume indicator (HVI) [12] function for the whole set of the Spatial benchmarks as a function of the initial number of warm-up samples (for sake of space we omit the smallest benchmark, BlackScholes). For every benchmark, we show 5 repetitions of the experiments and report variability via a line plot with 80% confidence interval. The HVI metric gives the area between the estimated Pareto frontier and the space's true Pareto front. This metric is the most common to compare multi-objective algorithm performance. Since the true Pareto front is not always known, we use the accumulation of all experiments run on a given benchmark to compute our best approximation of the true Pareto front and use this as a true Pareto. This includes all repetitions across all approaches, e.g., baseline and HyperMapper 2.0. In addition, since logic utilization and cycles have different value ranges by several order of magnitude, we normalize the data by dividing by the standard deviation before computing the HVI. This has the effect of giving the same importance to the two objectives and not skewing the results towards the objective with higher raw values. We set the same number of samples for all the experiments to 100,000 (the default value in the prior work baseline). Based on advice by expert hardware developers, we modify the Spatial compiler to automatically generate the prior knowledge discussed in Section 3.1 based on design parameter types. For example, on-chip tile sizes have a "decay" prior because increasing memory size initially helps to improve DRAM bandwidth utilization but has diminishing returns after a certain point. This prior information is passed to HyperMapper 2.0 and is used to magnify random sampling. The baseline has no support for prior knowledge.
Figure 10 shows the two different approaches: HyperMapper 2.0 using a warm-up sampling phase with the use of the prior and then an active learning phase; Spatial's previous design space exploration approach (the baseline).
GEMM OuterProduct K-Means GDA T-PCH Q6 DotProduct
Figure 10: Performance of HyperMapper 2.0 versus the Spatial baseline.
The y-axis reports the HVI metric and the x-axis the number of samples in thousands.
Table 4 quantitatively summarizes the results. We observe the general trend that HyperMapper 2.0 needs far fewer samples to achieve competitive performance compared to the baseline. Additionally, our framework's variance is generally small, as shown in 10. The total number of samples used by HyperMapper 2.0 is 12,500 on all experiments while the number of samples performed by the baseline varies as a function of the pruning strategy. The number of samples for GEMM, T-PCH Q6, GDA, and DotProduct is 100,000, which leads to an efficiency improvement of 8×, while OuterProduct and K-Means are 31,068 and 18,720, which leads to an improvement of 2.49× and 1.5×, respectively.
HyperMapper 2.0
Spatial Baseline
BlackScholes
0.1±0 0±0
K-Means
0±0 0.1±0.05
0.08±0.06 0±0
TPC-H Q6
0.43±0.2 0.06±0.06
0.08±0.11 0.4±0.22
Table 4: Performance of HyperMapper 2.0 in terms of mean ± 80% confidence interval at the end of the optimization process. Note that our approach terminates using a much lower number of samples.
As a result, the autotuner is robust to randomness and only a reasonable number of random samples are needed for the warm-up and active learning phases.
4.6 Understandability of the Results
Logic Util. Cycles
Pipelining
Tile Size A
Tile Size B
Table 5: Parameter feature importance per benchmark. Tile sizes are given for each data structure. OP and IP are the outer and inner loop parallelization factors, respectively. Pipelining determines whether the key compute loop in the benchmark is pipelined or sequentially executed. Scores closer to 1 mean that the parameter is more important for that objective. Scores for a single objective sum to 1.
HyperMapper 2.0 can be used by domain non-experts to understand more about the domain they are trying to optimize. In particular, users can view feature importance to gain a better understanding of the impact of various parameters on the design objectives. The feature importances for the BlackScholes and OuterProduct benchmarks are given in Table 5.
In BlackScholes, innermost loop parallelization (IP) directly determines how fast a single tile of data can be processed. Consequently, as shown in Figure 5, IP is highly related to both the design logic utilization and design run-time (cycles). Since BlackScholes is bandwidth bound, changing DRAM utilization with tile sizes directly changes the run-time, but has no impact on the compute logic since larger memories do not require more LUTs. Outer loop parallelization (OP) also duplicates compute logic by making multiple copies of each inner loop, but as shown in Figure 5, OP has less importance for run-time than IP.
Similarly, in OuterProduct, both tile sizes have roughly even importance on the number of execution cycles, while IP has roughly even importance for both logic utilization and cycles. Unlike BlackScholes, which includes a large amount of floating point compute, OuterProduct has relatively little computation, making the cost of outer loop pipelining relatively impactful on logic utilization but with little importance on cycles. In both cases, the Spatial compiler can take this information into account when determining whether to prioritize further optimizing the application for inner loop parallelization or outer loop pipelining.
During the last two decades, several design space exploration techniques and frameworks have been used in a variety of different contexts ranging from embedded devices to compiler research to system integration. Table 1 provides a taxonomy of methodologies and software from both the computer systems and machine learning communities. HyperMapper has been inspired by a wide body of work in multiple sub-fields of these communities. The nature of computer systems workloads brings some important features to the design of HyperMapper 2.0 which are often missing in the machine learning community research on design space exploration tools.
In the system community, a popular, state-of-the-art design-space exploration tool is OpenTuner [1] . This tool is based on direct approaches (e.g., , differential evolution, Nelder-Mead) and a methodology based on the Area Under the Curve (AUC) and multi-armed bandit techniques to decide what search algorithm deserves to be allocated a higher resource budget. OpenTuner is different from our work in a number of ways. First, our work supports multi-objective optimization. Second, our white-box model-based approach enables the user to understand the results while learning from them. Third, our approach is able to consider unknown feasibility constraints. Lastly, our framework has the ability to inject prior knowledge into the search. The first point in particular does not allow a direct performance comparison of the two tools.
Our work is inspired by HyperMapper 1.0 [7, 21, 25, 19] . Bodin et al. [7] introduce HyperMapper 1.0 for autotuning of computer vision applications by considering the full software/hardware stack in the optimization process. Other prior work applies it to computer vision and robotics applications [21, 25] . There has also been preliminary study of applying HyperMapper to the Spatial programming language and compiler like in our work [19] . However, HyperMapper 1.0 lacks some fundamental features that makes it ineffective in the presence of applications with non-feasible designs and prior knowledge.
In [16] the authors use an active learning technique to build an accurate surrogate model by reducing the variance of an ensemble of fully connected neural network models. However, our work is fundamentally different because we are not interested in building a perfect surrogate model, instead we are interested in optimizing the surrogate model (over multiple objectives). So, in our case building a very accurate surrogate model over the entire space would result in a waste of samples.
Recent work [9] uses decision trees to automatically tune discrete NVIDIA and SoC ARM GPUs. Norbert et al. tackle the software configurability problem for binary [29] and for both binary and numeric options [28] using a performance-influence model which is based on linear regression. They optimize for execution time on several examples exploring algorithmic and compiler spaces in isolation.
In particular, machine learning (ML) techniques have been recently employed in both architectural and compiler research. Khan et al. [18] employed predictive modeling for cross-program design space exploration in multi-core systems. The techniques developed managed to explore a large design space of chip-multiprocessors running parallel applications with low prediction error. In [4] Balaprakash et al. introduce AutoMOMML, an end-to-end, ML-based framework to build predictive models for objectives such as performance, and power. [3] presents the ab-dynaTree active learning parallel algorithm that builds surrogate performance models for scientific kernels and workloads on single-core, multi-core and multi-node architectures. In [34] the authors propose the Pareto Active Learning (PAL) algorithm which intelligently samples the design space to predict the Pareto-optimal set.
Our work is similar in nature to the approaches adopted in the Bayesian optimization literature [27] . Example of widely used mono-objective Bayesian DFO software are SMAC [15] , SpearMint [30, 31] and the work on tree-structured Parzen estimator (TPE) [6] . These mono-objective methodologies are based on random forests, Gaussian processes and TPEs making the choice of learned models varied.
6 Conclusions and Future Work
HyperMapper 2.0 is inspired by the algorithm introduced by [7] , later dubbed HyperMapper 1.0 [21] , by the philosophy behind OpenTuner [1] and SMAC [15] . We have introduced a new derivative-free optimization methodology and corresponding framework which uses guided search using active learning. This framework, dubbed HyperMapper 2.0, is built for practical, user-friendly design space exploration in computer systems, including support for categorical and ordinal variables, design feasibility constraints, multi-objective optimization, and user input on variable priors. Additionally, HyperMapper 2.0 uses randomized decision forests to model the searched space. This model not only maps well for the discontinuous, non-linear spaces in computer systems, but also gives a "white box" result which the end user can inspect to gain deeper understanding of the space.
We have presented the application of HyperMapper 2.0 as a compiler pass of the Spatial language and compiler for generating application accelerators on FPGAs. Our experiments show that, compared to the previously used heuristic random search, our framework finds similar or better approximations of the true Pareto frontier, with significantly fewer samples required, 8x in most of the benchmarks explored.
Future work on HyperMapper 2.0 will include analysis and incorporation of other DFO strategies. In particular, the use of a full Bayesian approach in the active learning loop would help to leverage the prior knowledge by computing a posterior distribution. In our current approach we only exploit the prior distribution at the level of the initial warm-up sampling. Exploration of additional methods to warm-up the search from the design of experiments literature is a promising research venue. In particular the Latin Hypercube sampling technique was recently adapted to work on categorical variables [33] making it suitable for computer systems workloads.
[1] Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan Ragan-Kelley, Jeffrey Bosboom, Una-May O'Reilly, and Saman Amarasinghe. Opentuner: An extensible framework for program autotuning. In Parallel Architecture and Compilation Techniques (PACT), 2014 23rd International Conference on, pages 303–315. IEEE, 2014.
[2] J. Bachrach, Huy Vo, B. Richards, Yunsup Lee, A. Waterman, R. Avizienis, J. Wawrzynek, and K. Asanovic. Chisel: Constructing hardware in a scala embedded language. In Design Automation Conference (DAC), 2012 49th ACM/EDAC/IEEE, pages 1212–1221, June 2012.
[3] Prasanna Balaprakash, Robert B Gramacy, and Stefan M Wild. Active-learning-based surrogate models for empirical performance tuning. In Cluster Computing (CLUSTER), 2013 IEEE International Conference on, pages 1–8. IEEE, 2013.
[4] Prasanna Balaprakash, Ananta Tiwari, Stefan M Wild, Laura Carrington, and Paul D Hovland. Automomml: Automatic multi-objective modeling with machine learning. In International Conference on High Performance Computing, pages 219–239. Springer, 2016.
[5] James Bergstra and Yoshua Bengio. Random search for hyper-parameter optimization. Journal of Machine Learning Research, 13(Feb):281–305, 2012.
[6] James S Bergstra, Rémi Bardenet, Yoshua Bengio, and Balázs Kégl. Algorithms for hyper-parameter optimization. In Advances in neural information processing systems, pages 2546–2554, 2011.
[7] Bruno Bodin, Luigi Nardi, M Zeeshan Zia, Harry Wagstaff, Govind Sreekar Shenoy, Murali Emani, John Mawer, Christos Kotselidis, Andy Nisbet, Mikel Lujan, et al. Integrating algorithmic parameters into benchmarking and design space exploration in 3d scene understanding. In Proceedings of the 2016 International Conference on Parallel Architectures and Compilation, pages 57–69. ACM, 2016.
[8] Leo Breiman. Random forests. Machine learning, 45(1):5–32, 2001.
[9] Marco Cianfriglia, Flavio Vella, Cedric Nugteren, Anton Lokhmotov, and Grigori Fursin. A model-driven approach for a new generation of adaptive libraries. arXiv preprint arXiv:1806.07060, 2018.
[10] Andrew R Conn, Katya Scheinberg, and Luis N Vicente. Introduction to derivative-free optimization, volume 8. Siam, 2009.
[11] Antonio Criminisi, Jamie Shotton, Ender Konukoglu, et al. Decision forests: A unified framework for classification, regression, density estimation, manifold learning and semi-supervised learning. Foundations and Trends® in Computer Graphics and Vision, 7(2–3):81–227, 2012.
[12] Paul Feliot, Julien Bect, and Emmanuel Vazquez. A bayesian approach to constrained single-and multi-objective optimization. Journal of Global Optimization, 67(1-2):97–133, 2017.
[13] Jacob R Gardner, Matt J Kusner, Zhixiang Eddie Xu, Kilian Q Weinberger, and John P Cunningham. Bayesian optimization with inequality constraints. In ICML, pages 937–945, 2014.
[14] Michael A Gelbart, Jasper Snoek, and Ryan P Adams. Bayesian optimization with unknown constraints. arXiv preprint arXiv:1403.5607, 2014.
[15] Frank Hutter, Holger H Hoos, and Kevin Leyton-Brown. Sequential model-based optimization for general algorithm configuration. In International Conference on Learning and Intelligent Optimization, pages 507–523. Springer, 2011.
[16] Engin Ïpek, Sally A McKee, Rich Caruana, Bronis R de Supinski, and Martin Schulz. Efficiently exploring architectural design spaces via predictive modeling, volume 41. ACM, 2006.
[17] Eunsuk Kang, Ethan Jackson, and Wolfram Schulte. An approach for effective design space exploration. In Monterey Workshop, pages 33–54. Springer, 2010.
[18] Salman Khan, Polychronis Xekalakis, John Cavazos, and Marcelo Cintra. Using predictivemodeling for cross-program design space exploration in multicore systems. In Proceedings of the 16th International Conference on Parallel Architecture and Compilation Techniques, pages 327–338. IEEE Computer Society, 2007.
[19] David Koeplinger, Matthew Feldman, Raghu Prabhakar, Yaqi Zhang, Stefan Hadjis, Ruben Fiszel, Tian Zhao, Luigi Nardi, Ardavan Pedram, Christos Kozyrakis, and Kunle Olukotun. Spatial: A Language and Compiler for Application Accelerators. In ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI), June 2018.
[20] David Koeplinger, Raghu Prabhakar, Yaqi Zhang, Christina Delimitrou, Christos Kozyrakis, and Kunle Olukotun. Automatic generation of efficient accelerators for reconfigurable hardware. In International Symposium in Computer Architecture (ISCA), 2016.
[21] Luigi Nardi, Bruno Bodin, Sajad Saeedi, Emanuele Vespa, Andrew J Davison, and Paul HJ Kelly. Algorithmic performance-accuracy trade-off in 3d vision applications using hypermapper. In Parallel and Distributed Processing Symposium Workshops (IPDPSW), 2017 IEEE International, pages 1434–1443. IEEE, 2017.
[22] F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, J. Vanderplas, A. Passos, D. Cournapeau, M. Brucher, M. Perrot, and E. Duchesnay. Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12:2825–2830, 2011.
[23] Carl Edward Rasmussen. Gaussian processes in machine learning. In Advanced lectures on machine learning, pages 63–71. Springer, 2004.
[24] Luis Miguel Rios and Nikolaos V Sahinidis. Derivative-free optimization: a review of algorithms and comparison of software implementations. Journal of Global Optimization, 56(3):1247–1293, 2013.
[25] Sajad Saeedi, Luigi Nardi, Edward Johns, Bruno Bodin, Paul HJ Kelly, and Andrew J Davison. Application-oriented design space exploration for slam algorithms. In Robotics and Automation (ICRA), 2017 IEEE International Conference on, pages 5716–5723. IEEE, 2017.
[26] Thomas J Santner, Brian J Williams, and William I Notz. The design and analysis of computer experiments. Springer Science & Business Media, 2013.
[27] Bobak Shahriari, Kevin Swersky, Ziyu Wang, Ryan P Adams, and Nando De Freitas. Taking the human out of the loop: A review of bayesian optimization. Proceedings of the IEEE, 104(1):148–175, 2016.
[28] Norbert Siegmund, Alexander Grebhahn, Sven Apel, and Christian Kästner. Performance-influence models for highly configurable systems. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, pages 284–294. ACM, 2015.
[29] Norbert Siegmund, Sergiy S Kolesnikov, Christian Kästner, Sven Apel, Don Batory, Marko Rosenmüller, and Gunter Saake. Predicting performance via automated feature-interaction detection. In Proceedings of the 34th International Conference on Software Engineering, pages 167–177. IEEE Press, 2012.
[30] Jasper Snoek, Hugo Larochelle, and Ryan P Adams. Practical bayesian optimization of machine learning algorithms. In Advances in neural information processing systems, pages 2951–2959, 2012.
[31] Jasper Snoek, Oren Rippel, Kevin Swersky, Ryan Kiros, Nadathur Satish, Narayanan Sundaram, Mostofa Patwary, Mr Prabhat, and Ryan Adams. Scalable bayesian optimization using deep neural networks. In International conference on machine learning, pages 2171–2180, 2015.
[32] Richard S Sutton, Andrew G Barto, et al. Reinforcement learning: An introduction. MIT press, 1998.
[33] Laura P Swiler, Patricia D Hough, Peter Qian, Xu Xu, Curtis Storlie, and Herbert Lee. Surrogate models for mixed discrete-continuous variables. In Constraint Programming and Decision Making, pages 181–202. Springer, 2014.
[34] Marcela Zuluaga, Guillaume Sergent, Andreas Krause, and Markus Püschel. Active learning for multi-objective optimization. In International Conference on Machine Learning, pages 462–470, 2013.
Generated by LaTeXML
Request Comment
You are adding the first comment!
How to quickly get a good reply:
Give credit where it's due by listing out the positive aspects of a paper before getting into which changes should be made.
Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
Your comment should inspire ideas to flow and help the author improves the paper.
The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
Question page
This is a comment super asjknd jkasnjk adsnkj
Unpublish
The feedback must be of minumum 40 characters
Join GroundAI
By signing up you accept our content policy
No a member yet? Create an account
or Invite via email
or Search users
You are asking your first question!
Keep your question short and to the point
Check for grammar or spelling errors.
Phrase it like a question
Test description


A motor warranty helps you with the unpredictability of mechanical breakdowns and high repair costs as well as protects you from poor workmanship. This usually covers most of the working parts, which includes air conditioner, transmission, cooling system, electrical parts and engine of your vehicle and 4x4.
A warranty isn't a maintenance policy but is an "assurance" in the event of mechanical failure. The motor warranty offers financial peace of mind which pays for expensive breakdowns and repairs, as well as retails parts and the labour to repair the mechanical and electrical breakdowns. It also pays for up to 50% towards wear and tear on covered parts and components depending on the warranty that you decide to go with. If you own a car there is a high chance that you will need a Motor Warranty.
Vehicle and car insurance is essentially a contract in which an insurance company assumes financial responsibility for any loss the insured may incur. This includes theft and any damage to the insured party's vehicle.
What do you need to know when getting car insurance?
Do your research and shop around. Get a few comparative quotes.
Don't make your decision purely on the premiums that you get offered – make sure that you are aware of any hidden costs, such as additional excesses.
Always take into consideration the reputation of the insurer for their service, price and claim processes and settlement turnaround times.
Take your time discussing the insurance policy with the insurer or broker and make sure you understand the policy.
It is important to make sure that you buy insurance from a reputable company if it's not a reputable company you may find yourself in a situation where your cover is not worth the paper it is written on when you make your claim.
Make sure that you know exactly what you are getting out of your insurance. You may pay your insurer for years or even decades and you need to make sure that you are sure that you are covered when these circumstances arise and what you will gain from the cover.
Stick to the promise that you make with your insurer. When you buy insurance you give your insurer all your personal information such as your habits as well as the way in which you will be using the insured items. If you give the insurer the wrong information even if it is slightly wrong there is the potential that the insurer's promise won't hold up.
The insurer will pay you what is due and what was agreed upon when signing your documents when you first apply for the insurance.


Baby girls will look adorable in this pink babygrow by Absorba, with its cute animal print and sweet ribbon at the front. This baby grow is made with organic cotton jersey, it is soft and gentle on baby's skin as well as kind to the environment. Easily machine washable, with poppers for fastening, it's the perfect choice for everyday quick and easy dressing.
Click Here for the matching Hat.


text:
Texas Banker Offers $1 Million Prize for Solution to Difficult Math Problem
A banker in Texas who is also a self-taught mathematician is going to award anyone who can solve a difficult math problem with $1 million.
The problem is the Beal Conjecture number theory, and it has been confusing mathematicians since the '80s.
D. Andrew Beal, the banker, first offered the Beal Prize in 1997 for $5,000. As time passed, the amount grew.
The American Mathematical Society said on Tuesday that a solution is more difficult than the one for a similar problem, the Fermat's Last Theorem, which wasn't solved for hundreds of years.
Beal hopes that the prize will inspire young people to pursue math and science.
A committee for AMS will award the million-dollar prize once there is proof of, or a counterexample to, the Beal Conjecture, and it is published in a mathematics publication.
Meanwhile, the prize is in the possession of AMS in a trust.
Sources: Daily Mail, Fox
American Mathematical SocietyBeal Conjecture Number TheoryD. Andrew BealBeal Math Problem

redpajama_set_name: RedPajamaCommonCrawl


If you are looking to hire a coach or want to buy or sell equipment, please Download the document at the bottom of this page (where is says documents:) and fill in the Right Column of the table.
If you are looking for a coaching job just send your resume and we will post it.
Please Note: The NWAL is not endorsing anyone or anything posted on this site. We are simply posting relevant information. Each team or individual is responsible for their hiring.


Mr. William H. "Bill" Haak III, 78, a resident of Folts Brook Center in Herkimer, New York since December 2017, and formerly of 7683 State Route 29, (Town of Oppenheim), Dolgeville, New York, died Wednesday evening, March 27, 2019 at the nursing home.
Bill was born in Little Falls, on April 5, 1940, the son of William H. and Elizabeth (Schrader) Haak Jr. and was educated in local schools.
He was employed for many years with the New York State Department of Transportation, as a truck and snow plow driver, retiring several years ago. During his retirement Bill would haul gravel, top soil and also local garbage for his friends and neighbors.
Bill is survived by cousins, his neighbors and his best friends, James and June Clark, who looked after him for many years.
In keeping with his wishes there will be a graveside service, later in the spring, in the Rural Park Cemetery, Inghams Mills. There are NO Calling hours.


text:
Cotesia chiloniponellae är en stekelart som först beskrevs av You och Wang 1990.  Cotesia chiloniponellae ingår i släktet Cotesia och familjen bracksteklar. Inga underarter finns listade i Catalogue of Life.

Källor

Bracksteklar
chiloniponellae

redpajama_set_name: RedPajamaWikipedia


Need protection for the contents of your mailing? Look no further! These Exquisite White Poster envelopes & Calendar envelopes are heavy duty board envelopes manufactured with peel & seal flaps ensuring protection of the contents whilst making an impact!
Ideal for sending out brochures, calendar's, documents, posters and prints!


Getting your qualification is just the start of the safety professional's journey towards effective workplace practice. World Class Health and Safety doesn't repeat the whys and whats of health and safety management, instead it is a helpful how-to guide for newly qualified and experienced health and safety professionals to get the best out of their knowledge, experience and the people they work with. This book is filled with practical examples that bring the subject to life, covering the skills and techniques you need to be a leader of safety, overcome inaction and make lasting positive changes to safety performance and culture - enabling more people to go home safe every day.


For SpringAir Products: SpringAir purifiers are serviced and warranted by the SpringCo Manufacturing Service Center. For the first 90 days from the original date of purchase, SpringCo will repair or replace the product without charge to the customer should the unit prove to have a manufacturing defect.
For 3 years from the original purchase, SpringCo will replace any defective part without charge for the part. The customer is responsible for labor charges and for safely shipping the unit to the Service Center. SpringCo will ship by the same method that the unit is received at no charge to the customer.
If you did not purchase your item from this site and want to return it, please contact the site, dealer or store from which you purchased the item for return policy and authorization.
Email us for a Return Authorization Number and return shipping address.


text:
Latest ReStore Finds
Decaf Nation
Charles Brandt Photos
CV Regional Growth Strategy
Arrow Gonsalves
Brian Charlton
Dermod Travis
Norm Reynolds
Ray Grigg
Crumblies Do Paris Book Launch
2019/05/18 | A & E, News | 0 |
The Comox Valley Writers Society is pleased to announce the launch of Crumblies do Paris. The author, Marlet Ashley, and the illustrator, Kate Brown, will be reading and signing books on Sunday, May 26th at 4058 Haas Road, Courtenay, in a launch with local author Carolyn Walton beginning at 2 pm.
Crumblies do Paris is a creative non-fiction travelogue picture book for grownups, and is the second in a three-part series about two elderly women who travel through Europe together. Meg and Peg get lost in Paris, miss a train in Normandy, and are aided by a couple of lovely young men who give them bus fare, clinching the fact that the women are indeed Crumblies (a Scottish word for old and decrepit).
Much like Crumblies do Skye, Crumblies do Paris is mostly true and tends toward creative non-fiction, heavy on the creative side of things.
Marlet Ashley says, "The names have been changed to protect both the innocent and guilty. We thoroughly enjoyed Paris and felt we had to write about our misadventures even if they made us seem a little dotty."
Paris is close to their hearts, and Marlet notes that she and Brown "were in Paris before the devastating fire that destroyed much of Notre Dame, and we wish to add our sympathy to those of many around the world for the people of Paris."
Kate Brown and Marlet Ashley have a long history of collaboration with their children's book series, Revelry on the Estuary which includes The Interlopers; Trumpeters' Tribulations; Penelope Piper's Great Adventure; Henri Sings the Blues; and A Pirate's Life for Gabby as well as a children's Christmas book, Must Be Christmas, along with Robin and Ruthie Ride the Bus.
Brown has additionally created prints, original paintings and ceramic ware depicting the books' characters.
Marlet Ashley, author, has been a career educator with an M.A. in English Literature and Creative Writing. She taught creative writing at the University of Windsor, and was a tenured instructor at Kwantlen Polytechnic University, Surrey, B.C. Her first novel is The Right Kind of Crazy (2018), and she is the author of the Canadian edition of Literature and the Writing Process. A member of the Federation of BC Writers, Marlet was a guest lecturer at Elder College at NIC and conducted fiction workshops for the Comox Valley Writers Society's writing conference at North Island College (2018, 2019). Marlet lives and facilitates a fiction writing group in Comox, BC.
Kate Brown, illustrator, studied Art and Design in London, UK, and developed a career as an interior designer, product designer, and clothing designer. Kate has been involved in designing museums in which exhibited artefacts seemingly come to life to tell stories that enthral and capture the interest of visitors. Kate is president and founding member of Artsphere (formerly Art Group of the Comox Valley), an organization that encourages artists and also supports local charities through art. Kate lives in Courtenay, BC, on the Comox Estuary.
Marlet Ashley
Author, Comox Valley Writers Society
PreviousGood News: Cancelled 'Originals Only' Show in Comox is Now the New Island Originals Art Show
NextComments on Logging the Schmidt Creek Watershed
Norm Rey
on Can Anyone Tell
Arthur Ralfs
Susan Holvenstot
on When what you are doing isn't working: try something different
Ross hunt
Latest from CV Biz Gazette
The hidden costs of downtime
Latest from Decaf Nation
CVRD directors approve racecar testing at Smit Field for one year by 2-1 vote
Latest from Island Word
30-Day Drawing Challenge launches year 6 on Jan 2
In Kind Sponsors


text:
Tag: degree
The Gift of Tears
The soul who cries is more living, and therefore fresher and younger than when it does not cry.
The 'gift of tears' was always considered by the masters of Christian spirituality as a grace from the Holy Spirit, for it is thanks to this gift that the soul surpasses itself and ascends to a degree of intensity of life which is certainly above that to which it is accustomed.
Now, the 'gift of tears' is a comparatively recent spiritual phenomenon in the history of human spirituality. In the ancient world one wept only ritually, ie through verbal lamentations and through prescribed gestures of mourning or grief, and it was amongst the chosen people, Israel, that real weeping began.
It was as a manifestation of the share that the chosen people had in the mission of preparing for the coming of Christ – who wept at the time of Lazarus' resuscitation and who sweated sweat and blood during the night in the Garden of Olives – that real weeping came to have its rudimentary origin from the womb of this people. And to this present day the Jews preserve, cultivate and respect the 'gift of tears'. In fact, every revelation in the narrative of the Zohar is preceded or accompanied by the weeping of the one who had it and who comes to share it with the others.
Meditations on the Tarot, Letter II, The High Priestess
Remembrance of God
And in the first states of trust, four miracles befall you. These are the signs and evidence of your attainment of the first degree of trust.
These signs are crossing the earth, walking on water, traversing the air, and being fed by the universe. And that is the reality within the door.
After that, stations and states and miracles and revelations come to you continuously until death.
And if you do not stop with this, He reveals to you the surface signs, you will be admonished with terrors and many sorts of states will befall you. You will see clearly the apparatus of transformations; how the dense becomes subtle and the subtle dense.
And if you do not stop with this the light of the scattering of sparks will become visible to you, and there will be a need to veil yourself from it. Do not be afraid, and persevere in the remembrance of God, for if you persevere in the remembrance of God, disaster will not overcome.
Ibn 'Arabi, The Journey to the Lord of Power
Law of Compensation
The Law of Compensation is that the swing in one direction determines the swing in the opposite direction, or to the opposite pole–the one balances, or counterbalances, the other.
On the Physical Plane we see many examples of this Law. The pendulum of the clock swings a certain distance to the right, and then an equal distance to the left. The seasons balance each other in the same way. The tides follow the same Law. And the same Law is manifested in all the phenomena of Rhythm. The pendulum, with a short swing in one direction, has but a short swing in the other; while the long swing to the right invariably means the long swing to the left.
An object hurled upward to a certain height has an equal distance to traverse on its return. The force with which a projectile is sent upward a mile is reproduced when the projectile returns to the earth on its return journey. This Law is constant on the Physical Plane, as reference to the standard authorities will show you. But the Hermetists carry it still further. They teach that a man's mental states are subject to the same Law. The man who enjoys keenly, is subject to keen suffering; while he who feels but little pain is capable of feeling but little joy.
There are temperaments which permit of but low degrees of enjoyment, and equally low degrees of suffering; while there are others which permit the most intense enjoyment, but also the most intense suffering. The rule is that the capacity for pain and pleasure, in each individual, are balanced. The Law of compensation is in full operation here. But the Hermeticists go still further in this matter. They teach that before one is able to enjoy a certain degree of pleasure, he must have swung as far, proportionately, toward the other pole of feeling.
They hold, however, that the Negative is precedent to the Positive in this matter, that is to say that in experiencing a certain degree of pleasure it does not follow that he will have to "pay up for it" with a corresponding degree of pain; on the contrary, the pleasure is the Rhythmic swing, according to the Law of Compensation, for a degree of pain previously experienced either in the present life, or in a previous incarnation. This throws a new light on the Problem of Pain.
The Kybalion
Most Mysterious Sights
When the intelligent and animal souls are held together in one embrace, they can be kept from separating.
When one gives undivided attention to the (vital) breath, and brings it to the utmost degree of pliancy, he can become as a (tender) babe.
When he has cleansed away the most mysterious sights (of his imagination), he can become without a flaw.
Lau-tzu, Tao-te Ching
Pros Theon: Pro-log fragment
There has been made possible an initiation but neither how nor why is revealed fully in one place at any one time. It occurs in a dimension beyond space and time.
The text is being produced now because it is the appointed time and enough of the necessary lessons – including encryption of sacred messages that they might be safely disseminated – have been learned throughout the last aeon.
The code was given in accordance with the law and it is to be hoped that the overall text has not been literally compromised by the parameters of this pre-determined creative impulse. The purpose behind this writing was not for the sake of art entirely. The nature of the commission was the determining factor of its overall style.
Contributors to this work have for the most part remained anonymous while others have made themselves known. It is possible to divine their names within the text. The principles invoked and included shall make their impression regardless of the degree to which they have been recognized.
That which is meant to be known was and is and shall be known and that which is truly a mystery shall forever be concealed in space and time;
Heed Euterpe.


The most important product in today's world is not the automobile or the refrigerator, it is INFORMATION. That makes Information Technology (IT) one of the fastest growing and most stable job markets out there. According to the Bureau of Labor Statistics, this field will keep growing steadily at least through the year 2014, in spite of any downturns in other parts of the economy.
Information Technology is a profession that includes every aspect of the computer world. If you think about it, a computer is just a big box of wires. It takes humans — humans with training and knowledge — to make it work. The most exciting thing about the field is the fact that the training is readily available. People from a wide variety of backgrounds have entered IT and gotten really good jobs in a very short time.
Computer Systems Analyst The systems analyst is possibly the most important technology person in a company. He or she looks at the technology needs of the company and plans how those needs can be met in the most efficient and economical way. The analyst finds out about future developments and makes sure the company is ready to take advantage of them. Government figures show a salary range of around $103,000 per year for Computer Systems Analysts.
Information Technology Manager The manager is not always the one who knows the most about a company's technology. He or she knows a lot, but the most important skill is directing the engineers, programmers, and others who do the work. Having a good manager leading the projects makes a company's technology much more valuable. Managers earn salaries that often start above $80,000 a year.
Computer Support Specialists These experts work with people both inside and outside a company. They help set up computer networks and individual workstations for a company's employees and help solve outside problems for a company's customers. Very often, it is the Computer Support person who is the face of the company when a customer calls for help. Support specialists' salaries range from $60,000 to $90,000.
Network Administrators Companies rely on networks for most of their communication. A network can connect a computer on an employee's desk to a printer down the hall, or a local computer to another workstation across town or across the country. The network handles e-mail, customer purchases, and almost every part of a company's workflow. Network Administrators range from $70,000 to $100,000 a year.
Computer Programmer Programmers tell the computer what to do. Even the most sophisticated computer is almost useless without the coded instructions that make it operate. These instructions are called programs. A beginning programmer may start around $60,000 a year, but it's not unusual to see salaries of well over $100,000 for experienced programmers.
Computer Software Engineers Software is the code that allows humans and computers to work together. Software engineers are part programmer, part designer, and part creative thinker. They figure out what computer users need and they construct it. For example, word-processing applications were dreamed up, designed, and created by Computer Software Engineers. The median salary range for Computer Software Engineers is around $96,000.
Quality Assurance Engineers No matter how carefully the other engineers do their work, there are always "bugs" to be found. Everything that goes out to face the public must be thoroughly tested. If you like taking things apart and finding out how they work, or why they don't work, this is the job for you. QA salaries can range upwards of $65,000.
Technical Writers If you like to write and you like technology, this is your field. The Tech Writer creates the user manuals, specifications, and even some of the internal design documents that are all so important in the Information Technology industry. Technical Documentation Experts (another name for Technical Writers) can earn from $65,000 to $100,000 a year.
Martin A. David is professional writer and translator. He has published thousands of articles, fiction and non-fiction books, and translations of classical Danish literature. He is also active as an actor and director in theatre and film.
Is it Cheaper to Go to School Online?
DegreesFinder is a 100% Free College Matching Service Website used by thousands of people daily.
Take classes on Your Own Time, While You Work.
Over 1,000 Career Degree Programs Available - Narrow Your Search Today.
Start Using our Fast, Free and Easy Matching Service Right Here and Right Now!


I need to integrate some tools like Brava Viewer and/or Brava Enterprise on Alfresco.
The goal is to give users the ability to view, print, measure, anotate (Markup) CAD files (and even PDF files) without having the native software installed.
Morover, the Texts Markups should be attached to the Document sheet, in order to be compared from one version to another.
Another need is the hability to compare graphically 2 revision of a same CED file.
The Brava tools seems to be the rights ones for what I need.
It provides an integration Framework (also used for integration with other ECM tools like Documentum, SharePoint, McLaren, HummingBird, etc…).
- Has anybody made something like this with Alfresco ?
- Do you think it can be done ?
- Do you know other tools for that ?
has someone experiences with this topic?
I am especially interested in Extracting/Saving Meta-data and Viewing/Redlining CAD documents directly in alfresco.
I dont know if you had this answered, but did you investigate ViewONE Pro from Daeja, it already has been integreated into Alfresco?
I am trying asimilar use case (adding an CAD viewer to alfresco).
did you get a respone to your enquiry.
would be happy to get your input.
no…no replies here or offline either.
i would be very interested in what you have implemented re: CAD/BIM so far, and compare notes if you are up for it!
Still in very early stage of exploring option.
Is it possible to merge them to view files in Alfresko Share?


At 5 a.m. EDT, the countdown entered a planned hold at the T-11 hour mark, and will resume at 7:01 p.m. tonight.
This morning's countdown status briefing is scheduled for 10 a.m. The briefing will be carried live on NASA TV and online at www.nasa.gov/ntv. Panelists are Jeff Spaulding, NASA test director, Joe Delai, STS-135 payload manager, and Kathy Winters, shuttle weather officer.
The updated STS-135 launch weather forecast remains the same as yesterday, with a 30 percent prediction for favorable weather.
The STS-135 astronauts had an early wakeup call as they continue to prepare for tomorrow's scheduled 11:26 a.m. liftoff of space shuttle Atlantis on the final mission of the Space Shuttle Program.


Some of you may remember this painting as a work in progress I did ages ago. I had put it away because the ferris wheel was giving me fits! I guess I have been on a 'marsh' kick because my last two paintings at class have been marsh scenes. Marsha (my teacher) suggested I try to paint things that I don't usually paint...outside of my comfort zone...like a night scene. So I took this one out and finished it. It's from a photo I took several summers ago. It had just rained so the night sky was cloudy and the lights were reflecting off the puddles on the sand. That was a challenging scene to paint. (the ferris wheel is better but still bothering me) Oh and it's big for me at 18x24 so it looks much more imposing in real life!
I really like this one. You have captured the reflection on the wet sand really well. What pastel did you use for the green on the left part of the roller coaster? Love the small red accents too.
Thanks...the small size here really doesnt do it justice. The green is a great American I think. I used my new Ludwig darks all over and I think they were just what this painting needed!


Proteins are large molecules that make up cells in the human body. There are two basic types of proteins. Some form the structure of cells – you can think of these proteins as building blocks that are put together to make cells. Others carry out certain functions within the cell – you can think of these proteins as small machines inside your body. The dysferlin protein is one of these machines, and scientists think that its job is to help fix any holes in the membrane (the outer wall) of the cell.
All proteins, both building blocks and machines, are actually long chains that are folded up into three-dimensional shapes. Each protein chain is made up of connected links called amino acids. There are 20 different kinds of amino acids, each with a slightly different shape. The different kinds of amino acids are strung together in a specific sequence to form a protein chain. The exact sequence of these amino acids in the protein is very important for the protein to fold up correctly and to carry out its proper function in the cell.
What is DNA and what is a gene?
DNA (deoxyribonucleic acid) is the information storage system of the body. DNA is a code that contains instructions telling the cell how to make all of its proteins. There is a separate DNA code (a gene) corresponding to each protein that is made by the cell. For example, instructions for how to make the dysferlin protein are written down in DNA code in the dysferlin gene.
Like proteins, DNA molecules are also long chains. But DNA chains don't act as machines, they just store instructions for making the protein chains. Each protein is a chain of amino acids, and each DNA molecule is a chain of connected links called nucleotides. There are four different nucleotides: adenine (A), thymine (T), guanine (G), and cytosine (C). Each set of three nucleotides is code for a specific amino acid. For example, if the DNA has the nucleotides adenine, then thymine, then guanine in a row (ATG), that is code for an amino acid called Methionine.
What is the relationship between a gene and a protein?
The terminology can be somewhat confusing. Dysferlin is a protein, and "the dysferlin gene" means "the gene which contains the instructions for producing the dysferlin protein." Each gene tells the cell how to put together the building blocks for one specific protein. However, the gene (DNA) sits inside a different compartment of the cell (the nucleus) from the location of the cellular machines that make proteins (ribosomes). Therefore, the gene must first make a copy of itself (called messenger RNA - mRNA), which is smaller and more portable than DNA and is able to leave the nucleus to reach the ribosomes. A ribosome then reads each set of three nucleotides in the mRNA code and converts the instructions into a chain of amino acids that attach together to form a protein. The mRNA also tells the ribosome where to start the protein and when the protein is finished; namely, when it should stop attaching new amino acids to the protein. Because the nucleotides are read in groups of three, it is important for the ribosome to know how to group the nucleotides. If the nucleotides are grouped incorrectly, the ribosome will choose the wrong amino acids and the protein will not function. Usually, when a protein is not properly produced, it is because there is some mutation in the gene which contains its instructions.
What is a mutation and what types of mutations might a patient have?
A MISSENSE mutation causes just one of the amino acids in the protein to be wrong.
This mutation is a mistake in one DNA nucleotide in a gene. That one nucleotide is part of a set of three nucleotides that code for a specific amino acid. When a ribosome reads this particular set of three nucleotides, one of them is wrong and the ribosome selects the wrong amino acid for the protein. Missense mutations can range from very mild to severe, depending on where in the protein the affected amino acid is located and how important the affected amino acid is to the protein's function.
A SPLICE-SITE mutation causes a sizeable section of the protein to be missing.
This mutation is a mistake in the DNA code that leads to a whole section of the protein being left out. In the case of dysferlin, this type of mutation usually means that 1-4% of the protein's amino acids are missing. Splice-site mutations can range from moderate to severe, depending on which section of the protein is missing.
A FRAMESHIFT mutation causes all of the amino acids in the protein, after a certain point, to be wrong.
This mutation is an insertion or deletion of one or more nucleotides in the DNA. Because a ribosome makes the protein by reading sets of three nucleotides, inserting or deleting a nucleotide means that the ribosome can no longer correctly group the sets of three. Every set of three after the insertion/deletion is incorrectly grouped, so the ribosomes pick the wrong amino acid for every set of three after this point in the protein. By analogy, imagine that each word in a sentence stole the first letter of the next word (THE RED CAR would become HER EDC AR) - the words would no longer be read correctly. This is a severe defect because much of the protein is wrong and the protein cannot function correctly.
A NONSENSE or STOP mutation causes the protein chain to stop prematurely.
This mutation is a mistake in the DNA code that tells the ribosomes to stop attaching new amino acids to the protein while the protein is still incomplete. The ribosomes stop too early and never even make part of the protein. This is a severe defect because much of the protein is missing, so the protein cannot function correctly. It may be possible to correct this type of mutation, however, by using a molecular signal to tell the ribosomes not to stop making the protein. Therapies based on this strategy are currently in development.
What are the benefits of identifying the gene mutations causing my disease (i.e. dysferlin gene mutational analysis)?
Getting a dysferlin gene mutational analysis only requires a small blood sample from a patient. Genetic analysis is only recommended after an initial diagnosis of dysferlin deficiency has already been made by either looking for the amount of dysferlin protein in a muscle biopsy or a blood monocyte dysferlin assay.
The gold-standard for diagnosis of genetic disorders is the identification of the defect (mutation) in the gene causing the disease. There are several forms of muscular dystrophy and LGMDs with very similar clinical symptoms, and analysis at the genetic level is the only way to definitively confirm your diagnosis of LGMD2B. A deficiency of dysferlin protein seen in a biopsy or a blood monocyte dysferlin assay points towards dysferlinopathy, but only the identification of specific mutations in the dysferlin gene will confirm that diagnosis.
Stop-codon readthrough: This therapy is currently in clinical trials for Duchenne Muscular dystrophy and several other non-muscle diseases and will potentially benefit those patients who have a specific kind of mutation, called a "nonsense" or "stop" mutation (see explanation for a stop mutation).
Exon skipping: This therapy is in clinical trials for another type of muscular dystrophy and could potentially benefit a subset of patients with mutations in specific areas of the dysferlin gene.
A genotype refers to the genetic characteristics of an organism. A phenotype refers to the physical characteristics. For example, having blue eyes (an autosomal recessive trait) is a phenotype; lacking the gene for brown eyes is a genotype. Dysferlin deficiency will only cause muscle weakness (phenotype) if a person has two defective copies of the dysferlin gene (genotype). The genotype of two defective dysferlin genes is associated with two different phenotypes, the symptoms of LGMD2B or of Miyoshi Myopathy.


text:
'J.O.N.A.S!' 1.08 Preview: Joe Rejected by His Crush
In the episode 'That Ding You Do', Joe goes classic after finding out that the girl he likes doesn't date rock stars.
AceShowbiz - Joe finds that it is tough being a Lucas brother when he develops a crush on an orchestra player who dislikes celebrities. In the eleventh episode of "J.O.N.A.S!" which is airing June 28, Joe eventually joins the school's orchestra to impress his crush.
Being the good brothers that they are, Kevin and Nick have to help Joe developing a classical piece to prove he is a serious musician. Meanwhile, Stella bets Macy that she can avoid texting longer than Macy can go without talking about JONAS.
Unlike in the usual Sunday schedule, "Hannah Montana" and "Sonny with a Chance" will not be the lead-ins for "J.O.N.A.S!" this week. Instead, Disney Channel will air an exclusive sneak peek to Walt Disney Pictures' "The Princess and the Frog". An animated comedy adventure that provides a modern twist on a classic tale, it features a beautiful girl named Tiana, a frog prince who desperately wants to be human again, and a fateful kiss. It will be released widely in U.S. theaters on December 11.
Cristiano Ronaldo Breaks Silence on Rumors of Him Dating Paris Hilton
Uncle Ben's Killer Could Return for 'Spider-Man 4'
Report: 'LHH: Atlanta' Star Karlie Redd Rushed to ICU After Being Brutally Beaten
Report: Prince William and Kate Middleton 'Celebrating' Prince Harry and Meghan Markle's Royal Exit
Scott Eastwood Caught Trying to Tear Down Protesters' Signs in California
Prince Harry and Meghan Markle to Take Legal Action Over Canada Hiking Photos
Tekashi69's Baby Mama Hits Back at His Girlfriend for Shading Her in Plea for His Release
Ginnifer Goodwin on Bill Paxton's Death: It 'Affected Me in a Really Big Way'
Nick Cannon on Orlando Brown's Oral Sex Claims: He Has Mental Issues


NPG is a white crystalline solid with a melting point of 127⁰C. This solid flake form has a tendency to fuse together and form a block, becoming difficult to separate, transfer, and handle.
Molten NPG,transported at high temperature, ships in heated tank trucks. For molten NPG to arrive at the plant intact it is necessary for the heated storage tank to maintain a temperature at or above 140⁰C.
A slurry / suspension form of NPG in water (90% NPG by weight) is a liquid at or above 38°C. This form of NPG ships in bulk at temperatures ranging from 50 – 70⁰C, enabling storage at a much lower temperature than molten NPG, at around 55 – 60⁰C.
The flake form arrives in bags with the potential to agglomerate on storage.
NPG has a combination of great properties but is rather complicated to handle; thus, we are continuously searching for a way to make handling easier. In contrast, we have found that MPO(2-methyl-1, 3-propanediol) has an equivalent resistance against UV light combined with humidity.
Conventional wisdom previously held that the degradation process through oxidation occurred via UV-initiated radical chain propagation. Instead of a cleaving C-C bond, we have found that the liability of related C-H bond impacts the propagation rate and ultimately the rate of damage to a polymer film. A FMOC analysis indicated the C-H bond next to the ester links are the most vulnerable to oxidation attack. This theory offers only a minor difference between NPG and MPO in weatherability, confirmed by accelerated aging tests.
The below charts illustrate that NPG-based polyester formulation PE-100 is equal-to-less effective in gloss retention than MPO-based PE-200 and PE-2186 in a QUV-340 and QUV-B313 accelerated weathering test. This result confirmed MPO's equally effectived weatherability in coating formulations.
We can compensate for any possible differences in MPO by adjusting the hydrophobicity and glass transition temperature of the final coating.
With this encouraging find, we looked into other properties of NPG. Another performance highlight of NPG-based polyester is its hydrolysis resistance. To make an apples-to-apples comparison, we synthesized polyester polyols using Adipic Acid to achieve a molecular weight 1000 polymerized diol. We mixed several such polyester polyols each with 10% weight of water and heated to 90⁰C separately. Also, we titrated acid value hourly to monitor the decomposition of each polyester polyol to form acid.
The test showed that NPG-based polyester polyol (orange line) is better for hydrolysis resistance than some polyester-diols but has similar or a little less hydrolytic stability than MPO-based (grey line) polyester-diol. A similar result should prove true when other di-acids are used to form the polyester, like Isophthalic Acid, Terephthalic Acid etc.
The illustrated performance makes MPO appealing as an economical alternative for NPG, especially for coatings requiring a cold weather performance. This low Tg comes from the very low freezing temperature of MPO (-54⁰C).
Low viscosity (178 cps) for ease of pouring and pumping.
Fast reaction speed dueto its sterically less-hindered structure versus that of NPG.
Low tendency to pick up moisture from the environment, for easier process control.
The low melting point of the monomer MPO translates to a lower Tg of a MPO adipate.
Ability to pump and pour at room temperature without expensive heated storage and transportation.
All components will react into final product without extracting and disposal of extra water (from the NPG/water slurry/suspension).
Built-in process aid to wash sublimed NPG off the reactor dome to improve efficiency.
Lower reactor temperatures or shorter reaction times affording low color resins and reduced energy requirements.
Good shock resistance at hot and cold temperatures.
Good cracking resistance in can & coil coating.
Good adhesion and flexibility in powder coating.
With confirmed positive feedback in paints, coating and plasticizer applications, we are further investigating MPO's feasibility in other NPG applications like lubricants, hydraulic oils, etc using its unique properties in low viscosity, oxidation and hydrolytic stability.
For more information on MPO available at Gantrade, contact us today.