text:
\section*{Introduction}

Accurate characterization of biomolecular structures in solution is required for understanding their biological function and for therapeutic applications. Small-angle scattering (SAS) of X-rays and neutrons indirectly measures distribution of interatomic distances in a molecule \cite{Kotch2003:QREV}. Unlike high-resolution techniques, such as X-ray crystallography and solution NMR, SAS allows the study of molecules and their interactions under native physiological conditions and with essentially no limitation on the size of the system under investigation. Though providing a powerful and unique set of experimental structural constraints, SAS is limited in resolution, as well as the ambiguity in deconvolution of interatomic distances from experimental data. It does not provide enough data to derive a high resolution molecular structure, but due to the ease of collecting SAS data at various conditions and the unique scale of atomic distance information, it is an extremely promising complement to the high-resolution techniques \cite{rambo2010bridging}.

Solution SAS studies have become increasingly popular, with the applications covering a broad range, including structure refinement of biological macromolecules and their complexes \cite{Grishaev2008protein:JBM, Grishaev2008RNA:JBM, Grishaev2005:JACS, Pons2010:JMB}, and  analysis of conformational ensembles and flexibility in solution \cite{Bernado2010:BIO, Datta2009:JMB, Jehle2011:PNAS, Bernado2007:JACS}. Finally, SAS is starting to be used in high-throughput biological applications \cite{hura2009robust,grant2011saxs}.

In order to use SAS for structural refinement, the scattering profile of the SAS experiment needs to be predicted \textit{ab initio} from molecular structure, which requires computing all-pairs interactions of the atoms in the molecule (also referred to as an N-body problem). In addition, the profile must be recomputed hundreds of thousands of times in an iterative structure refinement algorithm, ensemble analysis \cite{Grishaev2008protein:JBM,grishaev2010improved}, or for thousands of different structures in a high-throughput method. For such applications serial computation of the scattering profile becomes prohibitive, even for smaller molecules.

Several approximation algorithms have been proposed to speed up this computation \cite{svergun1995crysol,bardhan2009softwaxs,grishaev2010improved,poitevin2011aquasaxs}. However, depending on the diameter of the molecule, the approximations can introduce significant errors (see \cite{gumerov2012hierarchical} for theoretical limitations of these algorithm). Recently a hierarchical harmonic expansion method based on the fast multipole method (FMM) has been shown to have superior asymptotical performance than all previously proposed approximation methods \cite{gumerov2012hierarchical}, while maintaining any prescribed accuracy. However, the algorithm is very complex, which makes it difficult to implement and parallelize.

Here we describe a parallelization of the direct computation of SAS profile onto readily affordable graphical processing cards (GPUs) that provides a dramatic improvement in the efficiency of the scattering profile prediction. While CUDA \cite{nvidia2007compute} GPU parallelization has been proposed for a similar problem of powder diffraction \cite{gelisio2010real}, we extend GPU parallelization to SAXS/WAXS/SANS using an open GPU programming standard, OpenCL \cite{khronos2008opencl}, that makes our software compatible with most modern desktop and laptop systems. We show that our GPU implementation is an order of magnitude faster than the parallelized CPU version, and faster than the parallelized CPU version of the hierarchical harmonic expansion.

\section{Background}

\subsection{Computational Complexity of SAS Scattering Profile}

The scattering profile is a function of the momentum transfer $q$,
\begin{equation}
I(q) =\left\langle \abs{\sum_{j=1}^{N}f_{j}(q) \exp \left( i\vect{q}\cdot \vect{r}_{j}\right)}^2 \right\rangle_{\Omega},
\label{eq:iq}
\end{equation}
where $N$ is the number of atoms in the molecule, $f_j$ is the atomic form factor of the $j$th atom, $\vect{r}_j$ is the position of the $j$th atom relative to some coordinate frame, $\left\langle \right\rangle_{\Omega}$ represents the averaging over all possible orientations of the molecule (this is mathematically equivalent to the averaging over all possible orientations of \vect{q}), with q=\norm{\vect{q}}. We can analytically integrate Eq. \eqref{eq:iq} over $\Omega$, which yields an all-pairs $\sinc$ kernel summation (Debye summation),
\begin{equation}
  I(q) = \sum_k^N f_k(q) \sum_j^N f_j(q) \frac{\sin(qr_{jk})}{qr_{jk}},
  \label{eq:debye}
\end{equation}
where $r_{jk}$ is the distance between the $j$th and $k$th atomic centers \cite{Debye15:APL,Kotch2003:QREV}. Unlike the case of powder diffraction \cite{gelisio2010real}, in the general SAS case, the form factors $f_j$ cannot be factored out of the equation, because the non-uniform density of the water layer atoms around the molecule creates an intractable number of possible $f_k f_j$ combinations.

The computational cost of directly evaluating Eq. \eqref{eq:debye} for each $q$ is $O(N^2)$. For larger molecular system (tens or hundreds of thousands of atoms), the quadratic computational cost is a prohibitive barrier for atomic level computation of Eq. \eqref{eq:debye}. This computational cost is further compounded in a structure refinement algorithms, when the Debye sum has to be repeatedly calculated as part of a structural refinement protocol, e.g., \cite{Lipfert07:ARBBS, Franke09:JAC,Grishaev2008RNA:JBM}, or if an ensemble of molecular conformations is considered. For example, on a modern desktop directly computing a scattering profile a single time could take minutes for a moderately sized $20000+$ atom molecule.

To address the quadratic complexity of Eq. \eqref{eq:debye} several papers have suggested approximately computing Eq. \eqref{eq:iq} by averaging over a constant number of orientations \cite{bardhan2009softwaxs,grishaev2010improved,poitevin2011aquasaxs}, or using harmonic expansion \cite{svergun1995crysol}. Assuming one accurately computes the averaged $I(q)$ value for some constant number of orientations or harmonic expansions, the algorithm should have a superior $O(N)$ complexity. However, it was demonstrated in \cite{gumerov2012hierarchical} that the number of orientations (or harmonics) needed for accurate orientational averaging is problem dependent, requiring no less than $O(q^2D^2)$ orientational samples, where $D$ is the the diameter of the molecule (the largest distance between two atoms of the molecule). Thus, the computation of the full profile has an overall complexity of $O(q^2D^2N)$. In addition, the constant inside the $O(q^2D^2N)$ is larger than in direct $O(N^2)$ computation.

For a significant variety of structures (especially elongated structures like DNA or RNA), the factor $q^2D^2$ can be larger than $N$. For example, the complex [PDB:2R8S] has $12000$ atoms, and diameter of $150$ $\text {\AA}$. For $q=1.0$ $\text {\AA}^{-1}$, since $q^2D^2=150^2>N$, it clearly makes more sense to directly compute Eq. \eqref{eq:debye} for this complex, instead of using the approximations mentioned above. Similar analysis between direct and approximate methods can be done automatically for any type of input.

Recently we have demonstrated that the complexity of the approximate computation can be significantly improved by applying an FMM-like hierarchical algorithm based on spherical harmonics \cite{gumerov2012hierarchical}, giving an overall complexity of $O(N\log N+(qD)^3\log (qD))$ for a specific value of $q$. This method offers significant speedup in evaluation of Eq. \eqref{eq:iq} for most relevant ranges of $qD$ and $N$ as compared to previous approximation methods.

However, due to the $(qD)^3$ dependence, as we demonstrate below, for medium size molecules and WAXS values of $q$ ($q>  0.25$), it is still faster to compute the $O(N^2)$ Eq. \eqref{eq:debye}, directly on the GPU. Our results clearly demonstrate a large computational benefit of a GPU based direct Debye summation algorithm for higher ranges of $qD$ and/or lower density pseudo-molecules \cite{Franke09:JAC,yang2009rapid}.

\subsection{GPU Computing}

GPUs with a substantial computing power are widely available today in most PCs, and can now provide over $1$ Tflop of computational power, such as the Tesla C2070.
While GPUs were originally designed for intense graphics computations, using GPUs as a less expensive alternative to the high-performance computing on a  CPU cluster is now a well established technique in scientific computing, and is commonly referred to as General Purpose computing on the GPU (GPGPU). Whereas a general purpose CPU devotes much of the on-chip real estate to flow-control and caching, and only a relatively small area to computational cores, GPUs have many cores that simultaneously execute the same small program on different data, referred to as Single-Instruction Multiple-Data (SIMD) architecture \cite{owens2008gpu}.

The GPGPU paradigm is well suited for structural biology because of the embarrassingly parallel nature of molecular force fields and the large number of particles in a typical molecular system. Such computations, running on the GPU, have been shown to give order of magnitude speedup over their parallel CPU companions (see \cite{stone2010gpu} for a review), but require the programmer to explicitly manage different
memory levels in order to achieve good performance.

The most popular method to program a GPU is with CUDA (interface developed by NVIDIA), which allows
programming of the GPUs in a C-like language. Detailed description of an efficient CUDA implementation for an N-body problem is provided by NVIDIA \cite{nyland2007fast} and more examples can be found, see \cite{stone2010gpu} for references. However, these implementations are available only for CUDA enabled NVIDIA cards, and cannot be used on GPUs from other vendors.

To standardize and unify GPU programming across multiple platforms, the OpenCL standard was introduced in 2008 \cite{khronos2008opencl}. The diagram of the three basic OpenCL memory levels is given in Figure \ref{fig:memory}. GPU global memory is a large block of memory that is shared between all worker threads, however access to it is extremely slow relative to the local and private memory. Local memory is orders of magnitude faster than global memory, but is only shared between threads in an individual compute unit. Finally, each thread has a very small block of fast private memory. An OpenCL workgroup is a a subset of the compute unit, whose size is determined at compilation time.

\begin{figure}[htb]
\centering
\includegraphics[width=3in]{memory}
\caption{Simplified OpenCL memory model, representing the three main levels of memory: global, local, and private. }
\label{fig:memory}
\end{figure}

In order to design an efficient GPU algorithm the majority of the computation in each thread should be done in private and local memory, with only an aggregate result periodically copied back to global memory. A corollary to this is that the amount of work done by each compute unit should be maximized relative to the amount of memory transfer between global and local/private memory. With this in mind, we now move on to describing our algorithm for the computation of the $\sinc$ kernel.

\section{Implementation}

We first observe than for each value of $q$, direct evaluation of Eq. $\eqref{eq:iq}$ is embarrassingly parallel, and can be significantly sped up by using parallel GPU computing. Given $O(N^2)$ work threads, the computation can be theoretically computed in $O(\log N)$ time and $O(N^2)$ work, with an $O(1)$ time parallel kernel evaluation, followed by an $O(\log N)$ time parallel reduction. In practice such an algorithm is not scalable because of the $O(N^2)$ memory requirement. Let $W<N^2$ be the number of workers available in the hardware of the GPU. We set out to design an $O(N^2/W+\log W)$ time algorithm with $O(N^2)$ work complexity, and $O(N+W)$ memory requirement. This algorithm scales linearly with $Q$, the number of $q$ values that need to be evaluated.

Since we expect users to run structure refinement computation on a heterogeneous set of systems, based on what is available to them at any given time (including personal laptops), we designed the algorithm for the general OpenCL 1.0 memory model. We focused on optimizing memory transfers between the RAM and global GPU memory, and between global GPU memory and local GPU memory, as well as avoiding quadratic scaling in memory usage.

Let $B$ be the number of workers in each compute unit, and assume that the global GPU memory is large enough to store all $N$ positions of atoms and at least one set of $QN$ associated form factors for a specific $q$ value. For local GPU memory we assume that it is large enough to store $B$ atom positions and $B$ form factors associated with the specific $q$ value. If $QN$ form factors are too large to fit into the main memory, we atomically split the GPU computation into multiple computations on a subset of $q$ values. Just like any implementation of the Debye summation, the algorithm consists of three loops: the loop over the $q$ values; the loop over all the atoms; and another loop over all the atoms.

The overwriting design of the algorithm is to minimize the number of memory transfers from global memory to local memory, and to avoid access of global memory outside of block transfers. In a normal CPU implementation the iteration over $q$ would be inside the double loop over the atoms, since this avoids recomputing the distance between two atoms at different values of $q$ (which requires an expensive square root operation). However, in our implementation we put the iteration over $q$ as the outer most loop due to the size limitation of local GPU memory, and only compute two $q$ values at a time inside the innermost iterations. Further increasing the number of the $q$ values does not improve the performance, since the storage of $f(q)$ values overwhelms the private and then the local memory, while also decreasing the maximum workgroup size.

The algorithm starts by spawning $N$ workers. For every second $q$ value, each worker $j$ copies its atomic position and the associated form factor from global memory to private memory and each local workgroup of size $B$ copies a block of $B$ sequential form factors and atom positions into the local memory. At this point each worker in the local workgroup proceeds to compute the kernel sum between its private atom and all the atoms stored in the local memory of the group. Once the computation is completed, the next block of $2B$ form factors (for the two $q$ values) and atom positions is copied into the local memory, and the computation is repeated. At the end of the all-pair summation for the two current $q$ values, a local parallel reduction is done to aggregate the private totals of each worker into one local memory value, and that value is copied into global memory. At the end of computation another reduction is done to aggregate all the workgroup totals, stored in global memory, into a final $I(q)$ array. The final reduction is a quick computation, and can be done in a CPU. In order to avoid unnecessary computation, only values for $j \leq k$ are computed. In the case when the number of atoms is smaller than the number of workers in a GPU, $N<W$, we create $pN \geq W$ worker, such that $(p-1)N>W$, and the internal loop over all atoms that was previously done by one worker, is now split between $p$ workers. The basic diagram of our algorithm is shown in Figure \ref{fig:process}.

\begin{figure}[htb]
\centering
\includegraphics[width=3in]{process}
\caption{ Diagram of our GPU algorithm. Each atom thread ($T$) computes the $\sinc$ kernel between itself and all the atoms in block $B$ (all the atoms are split into block, which are stored in local memory). After all compute units are done with their computation, the blocks are shifted by one, and the computation is repeated. }
\label{fig:process}
\end{figure}

Due to the limitation of some GPU cards, the OpenCL code was implemented using single instead of double precision. This does not affect the applicability of the computation, since the errors (even for a million atom system) are orders of magnitude below experimental errors and the inherent accuracy of the theoretical model. We expect the computation using doubles to be twice as slow, however it is unnecessary in this case.

\section{Results}

The GPU algorithm (``GPU'') was compared to three other methods: two methods are different implementations of the direct summation of Eq. \eqref{eq:debye}, IMP toolbox implementation in C++ (``IMP'') \cite{forster2008integration} and our CPU parallelized Java implementation (``Parallel''); and the other method is a parallelized CPU FMM-like hierarchical method \cite{gumerov2012hierarchical} (``FMM'', with the prescribed relative accuracy of $0.001$). We did not compare our method to other approximation methods since the FMM-like method has been demonstrated to have orders of magnitude faster performance than $O(q^2D^2N)$ approximation methods.

We performed benchmarks on a laptop system, as well as a significantly more expensive specialized computer. The laptop is a dual core 2.66 GHz Intel Core i7 Macbook Pro with NVIDIA GeForce GT 330M GPU, running Mac OS X Lion 10.7.2., C++ Apple LLVM compiler 4.2, CUDA 4.0, and Java 1.6.
The second system is a single node of the Chimera GPU cluster, which has dual Intel Xeon quad-core 2.5 Ghz processors with Nvidia GTX 295 GPU, running Linux 2.6.18, Intel 11.1 compiler, and Java 1.6.

All C++ and Fortran programs were compiled with the ``-O3'' flag. The harmonic expansion method was only run on the Chimera node due to compiler incompatibility on the Mac OS. Timing results were obtained for the critical region of the moment transfer values of $0<q\leq1.0$ $\text {\AA }$, as suggested in \cite{grishaev2010improved}.

The results for the Macbook Pro are shown in Figure \ref{fig:macbookpro}, and the detailed CPU and GPU timing results are also shown in Table \ref{tab:results}. The GPU version is over $47$ times faster than the standard single CPU computation in the IMP library, thus decreasing the computation time for a moderately large $40000$ atom protein from $957$ seconds to around $20$ seconds. For smaller proteins the speedup decreases due to the overhead of CPU-GPU memory transfers becoming a more prominent percent of the overall time. For a commonly sized $10000$ atom protein used in a SAS experiment, the GPU version was $44$ times faster with the time decreasing from $59$ seconds for IMP, to around $1.4$ seconds.

\begin{figure}[htb]
\centering
\includegraphics[width=3in]{speedpro}
\caption{ Timing results for the computation of a $50$ point SAS profile on differently sized, randomly generated proteins on the Macbook Pro system.}
\label{fig:macbookpro}
\end{figure}

\begin{table*}[!ht]
\centering
\caption{
Timing results of the described algorithms. }
\begin{tabular}{| l | c | c | c | c | c | c |} \hline
N & \multicolumn{3}{| c |}{Macbook Pro} &  \multicolumn{3}{| c |}{Chimera}\\ \hline
 & CPU (2 core) & GPU & Speedup & CPU (8 core) & GPU & Speedup\\ \hline
1000 & 0.28 & 0.03 & 9.5 & 0.10 & 0.02 & 5.9 \\ \hline
2000 & 1.16 & 0.07 & 15.6 & 0.35 & 0.03 & 13.0 \\ \hline
4000 & 4.25 & 0.25 & 17.0 & 1.35 & 0.08 & 17.3 \\ \hline
10000 & 26.8 & 1.34 & 20.1 & 8.28 & 0.34 & 24.3 \\ \hline
20000 & 108 & 5.02 & 21.5 & 33.8 & 1.14 & 29.6 \\ \hline
40000 & 439 & 20.4 & 21.6 & 133 & 3.94 & 33.7 \\ \hline
100000 & (2695) & 121 & 22.3 & 806 & 22.5 & 35.9 \\ \hline
\end{tabular}
\begin{center}{All timing results are in seconds. Estimated timing is shown in parentheses.}
\end{center}
\label{tab:results}
\end{table*}

Our parallel Java implementation was over $2$ times faster than the single threaded IMP implementations on our dual core system, with over $100$\% efficiency (this is most likely due to hyper-threading available on each core). The speedup of a GPU Debye summation over a similarly parallelized CPU version is over $22$ times on the Macbook Pro. Approximately $20$\% of the computation is taken up by memory transfers, $15$\% by the atomic distance computation, and the rest by evaluation of the $\sinc$ function and other unavoidable operations.

With such a dramatic speedup, the GPU algorithm makes it possible to perform previously infeasible SAS profile computations of moderate size proteins or even to compute the SAS profiles for a large ensemble of structures on a basic laptop.

Similar results for a single Chimera node are shown in Figure \ref{fig:chimera}, and the detailed CPU and GPU timing results are also shown in Table \ref{tab:results}. The Chimera node is a significantly more expensive and powerful computer than the Macbook Pro, however for single threaded code, like IMP, the performance is only $1.15$ times faster than on the Macbook Pro.
\begin{figure}[htb]
\centering
\includegraphics[width=3in]{speedchimera}
\caption{Timing results for the computation of uniformly spaced $50$ point SAS profile with $0<q\leq1.0$ $\text {\AA }$ on different size randomly generated proteins on a single Chimera node.}
\label{fig:chimera}
\end{figure}

On the Chimera node, our parallel Java implementation is over $6$ times faster than IMP (below the perfect speedup of $8$, with about $94$\% parallelization efficiency), and our GPU implementation is around $36$ times faster than our parallel Java version for $100000$ atom protein, dropping to about $25$ times speedup for $10000$ atom protein. If we assume perfect parallelization of the C++ IMP code, the speedup drops to about $26$ for $100000$ atoms. This is similar to the speedup observed on the Macbook Pro. Complete timing results for the parallel CPU version and the GPU version on both systems are shown in Table \ref{tab:results}.

The parallelized CPU FMM-like algorithm becomes faster than the direct GPU computation at around $50000$ atoms. However, due to the dependence of FMM-like algorithm on $q$, the FMM-like algorithm is actually slower for higher $q$ values in the profile. In Figure \ref{fig:qvalues} we demonstrate the switch in the optimal computation algorithm for a $50000$ atom protein, from the FMM-like algorithm, to the GPU algorithm. The crossover between the FMM-like method and GPU is around $q=0.6$ $\text {\AA}^{-1}$, at which point our GPU implementation is still the fastest available method for computing a SAS profile. This result does not take into account the additional computational time of setting up the FMM, such as generating an octree and precomputing translation operators.

\begin{figure}[htb]
\centering
\includegraphics[width=3in]{speedq}
\caption{Timing results at the individual $q$ values of a SAS profile of a randomly generated $50000$ atom protein, on a single Chimera node.}
\label{fig:qvalues}
\end{figure}

We demonstrate a practical application of our GPU method by comparing our {\it ab initio} prediction to the popular and extremely fast CRYSOL \cite{svergun1995crysol} software package using experimental data. The experimental data are for low $q$, where approximation methods, like CRYSOL, are most applicable, yet we still demonstrate a significant boost in computation speed.  We note that our algorithm does not have to be used as a standalone component, as is demonstrated here, but can be quickly integrated into a more advanced SAS pipeline that would yield improved fit to experimental data. Here we demonstrate the immediate computational advantage of our implementation, even for lower $q$ values, over the current state-of-the-art spherical harmonic approximation method.

All hydrogens where explicitly treated and all {\it ab initio} prediction was done without refinement of any parameters against experimental data. CRYSOL was ran with default options, and no water layer was added to our method. Both, the profile for CRYSOL and GPU method was computed for $100$ uniformly distributed points. We provide the {\it ab initio} fits to experimental data solely to demonstrate that we are timing the necessary amount of experimentally relevant computation relative to CRYSOL. The final fits given in most publications include some amount of pre/post processing that is not relevant to our analysis.

The first benchmark was done on the lysozyme data provided in the CRYSOL package.  The computation was timed on the Macbook Pro machine, with the GPU computation taking $0.4$ seconds, and CRYSOL $1.0$ seconds. For visualization purposes, the profile fits are given in Figure \ref{fig:lyzfit}.

\begin{figure}[htb]
\centering
\includegraphics[width=3in]{lyzfit}
\caption{Comparison of SAXS profile fit between CRYSOL and our GPU implementation for hen egg-white lysozyme [PDB:193L]. The predicted profiles were rescaled to overlap the experimental profile.}
\label{fig:lyzfit}
\end{figure}

The second benchmark was ran on the dataset [BID:1PYR1P], downloaded from the BIOSIS database. The GPU method ran on a Macbook Pro in $1.2$ seconds, compared to $1.4$ seconds for CRYSOL. The fit is shown in Figure \ref{fig:3K3Kfit}.

\begin{figure}[htb]
\centering
\includegraphics[width=3in]{3K3Kfit}
\caption{Comparison of SAXS profile fit between CRYSOL and our GPU implementation for [PDB:3K3K]. The predicted profiles were rescaled to overlap the experimental profile.}
\label{fig:3K3Kfit}
\end{figure}

The timing results demonstrate the advantage of our direct GPU algorithm, even at low $q$ values, over one of the fastest and most popular current implementations of approximation method.

\section{Discussion}

We have demonstrated that, for important input domains, our GPU implementation is currently the fastest possible algorithm for high $qD$ inputs, or small molecules, that can effectively run on a personal computer. This direct GPU implementation should be considered as a complementary algorithm to the CPU FMM-like implementation at lower $q$ values, where the algorithm choice should be made automatically, depending on the value of $qD$ and $N$. In a typical range of $0<q<1.0$ $\text {\AA}^{-1}$, we suggest that for low $q$ values an FMM-like algorithm should be used, while for higher $q$ values computation should be switched to the direct GPU algorithm.

Since the CPU FMM-like and the GPU algorithms run on separate processors, both should run at the same time, on different $q$ ranges, in order to achieve maximum efficiency. The GPU algorithm performance should further improve in the future, as the size of the local memory increases and more $q$ values can fit inside the innermost loop.

\section{Conclusion}

We provided the first comparison of a direct a GPU computation vs. FMM-like method for SAS problem, and demonstrates the immense utility of a parallel GPU direct summation method for a large set of potential input. At the same time, we showed the inherent computational tradeoff between approximation methods vs. direct all-to-all summation. Our implementation was written in OpenCL, allowing it to be run on most modern laptop and desktop GPUs, while still having over $25$ times faster runtime than a similar parallel CPU implementation.

We also demonstrated an application of our new method on two experimental datasets, and showed that our GPU software can compute the scattering profile faster than CRYSOL, with a guaranteed machine level computational precision of the underlying mathematical model. The performance gains of this algorithm can be quickly realized by any of the current {\it ab initio} SAS prediction packages.

The above software is part of a new high performance software package, ARMOR, which includes additional NMR restraints \cite{patidock,elmdock}.

\section*{Acknowledgements}

We thank the UMIACS New Research Frontiers Award for supporting this research.

\bibliographystyle{elsarticle-num}

redpajama_set_name: RedPajamaArXiv


text:
package com.qiniu.android.http.metrics;

import com.qiniu.android.common.ZoneInfo;
import com.qiniu.android.http.request.IUploadRegion;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;

public class UploadTaskMetrics extends UploadMetrics {

    public ArrayList<IUploadRegion> regions;

    private String upType;
    private UploadRegionRequestMetrics ucQueryMetrics;
    private List<String> metricsKeys = new CopyOnWriteArrayList<>();
    private Map<String, UploadRegionRequestMetrics> metricsInfo = new ConcurrentHashMap<>();

    public UploadTaskMetrics(String upType) {
        this.upType = upType;
    }

    public Long requestCount(){
        long count = 0;
        for (String key : metricsInfo.keySet()){
            UploadRegionRequestMetrics metrics = metricsInfo.get(key);
            if (metrics != null){
                count += metrics.requestCount();
            }
        }
        return count;
    }

    public Long bytesSend(){
        long bytesSend = 0;
        for (String key : metricsInfo.keySet()){
            UploadRegionRequestMetrics metrics = metricsInfo.get(key);
            if (metrics != null){
                bytesSend += metrics.bytesSend();
            }
        }
        return bytesSend;
    }

    public Long regionCount(){
        long count = 0;
        for (String key : metricsInfo.keySet()){
            UploadRegionRequestMetrics metrics = metricsInfo.get(key);
            if (metrics !=null
                    && metrics.region != null && metrics.region.getZoneInfo() != null
                    && !metrics.region.getZoneInfo().regionId.equals(ZoneInfo.EmptyRegionId)){
                count += 1;
            }
        }
        return count;
    }

    public UploadRegionRequestMetrics lastMetrics() {
        int size = metricsKeys.size();
        if (size < 1) {
            return null;
        }

        String key = metricsKeys.get(size - 1);
        return metricsInfo.get(key);
    }

    public void addMetrics(UploadRegionRequestMetrics metrics){
        if (metrics == null || metrics.region == null || metrics.region.getZoneInfo() == null
                || metrics.region.getZoneInfo().regionId == null){
            return;
        }
        String regionId = metrics.region.getZoneInfo().regionId;
        UploadRegionRequestMetrics metricsOld = metricsInfo.get(regionId);
        if (metricsOld != null){
            metricsOld.addMetrics(metrics);
        } else {
            metricsKeys.add(regionId);
            metricsInfo.put(regionId, metrics);
        }
    }

    public String getUpType() {
        return upType;
    }

    public UploadRegionRequestMetrics getUcQueryMetrics() {
        return ucQueryMetrics;
    }

    public void setUcQueryMetrics(UploadRegionRequestMetrics ucQueryMetrics) {
        this.ucQueryMetrics = ucQueryMetrics;
        addMetrics(ucQueryMetrics);
    }
}

redpajama_set_name: RedPajamaGithub


NEXT COURSE STARTS ON 9th JANUARY 2019 – SEE CONTACT US PAGE FOR MORE DETAILS.
WOULD YOU LIKE TO RUN A PARK RUN?
We are so proud to have been nominated, and subsequently shortlisted, for Sports Club of the Year at the London Sport Awards in January 2016!
Would you like to be able to run?
Have you ever been at Norman Park on a Saturday and seen over 500 runners taking part in parkrun, and thought that you may like to do the same?
We can help, and for free ! We offer a 10 week course to help non-runners achieve just that.
These are run 4 times per year, just check out the contact us page to see when the next one starts.
Over 300 people have taken our course in the last year or so, and many of them still come back to run with us for fun!
The courses are organised by experienced and qualified leaders….and we have been nominated for Sports Club of the Year at the London Sports Awards.


Starting your own business is a major decision and one that requires a great deal of planning. Whether you're ready to incorporate or just starting to think about entrepreneurship we want to provide you with the resources that you need to be successful.
Our menu to left includes a Startup Checklist that provides you with a step-by-step list of things you'll need to consider when starting your business.
The Startup Partners link provides a comprehensive list of state and federal agencies and organizations that can assist you with your startup.
When you're ready to search for the right property or pursue financial incentives we can assist you with that too.


Better Health Challenge 2019 – get ready NOW!
The Better Health Challenge is bigger and better in 2019!
Take on this challenge solo, or grab a few of your motivated friends to help you form a Team. We've got some incredible new additions to the Better Health Challenge! You can also earn rewards and prizes just for helping others join up to take the challenge!
The new year is right around the corner— but you can start getting ready today! During the month of December, we have a special offer on all our Challenge weight loss kits – a huge discount and free shipping! Grab yours today!
To get the full details on all of the updates, download and share this flyer with your teams. To learn more about and join the challenge, visit ygybetterhealth.com !
You can also send an invite email to get others to join!
Youngevity Health Quiz is Now Available!


Drusilla Rogers is a straight talking, common sense; make it happen kind of person. She has been heavily involved in all things Bastrop since she got here 24 years ago. Her Best of Bastrop candy gifts hop, The Sugar Shack, is a city landmark. The 2010 Citizen of the Year was a founder member and President of the Downtown Business Alliance and has served on the boards of the Bastrop Economic Development Corporation, Bastrop Chamber of Commerce, and Bastrop County Emergency Food Pantry.
If you want something done, roll up your sleeves and start working. That is the basis of my relationship with Bastrop. When I got here 24 years ago I got involved and I got busy. The best way to know a city is to get out and meet the people. So I volunteered, volunteered and volunteered some more. I chaired our Christmas Parade every year since 2007 and co-chaired the Yesterfest event for three years. I've been fortunate enough to be asked to sit on several city and non-profit boards and was delighted to serve.
WHAT COMPELLED YOU TO SERVE AS A MEMBER OF THE BASTROP CITY COUNCIL?
We are growing fast. I want a bigger Bastrop to be a better Bastrop. Good policy decisions will mean we don't lose our sense of community and our quality of life. I think I can bring some common sense thinking to those decisions. Business owners have to look hard at their income and expenses; have to make sure they invest carefully and spend wisely. I want to keep an eye on the public purse to be sure we have the resources we need to face our challenges without sticking the property taxpayers with the tab.
WHAT IS YOUR VISION FOR THE FUTURE OF BASTROP?
I see a Bastrop that has grown wisely with more resources and more opportunities for our citizens. A place where there are thriving businesses offering good jobs, a place where people enjoy the beautiful historic heart of our city and wonderful life you can have here. I want a city where government is transparent and represents all our people evenly and fairly.
Two daughters, a son and six grandkids…. and...figuring out what wonderful new things I can put in my store to delight the child in my customers young and old.


text:
Max Farias
2020 Portfolio
Kings of the Jungle
USC Football Streams
FCPX Videos
Graphic Edits
I Thought the Disappointment Was Over, It's Not: The Rams New Uni's
Date: May 13, 2020Author: Monica Zepeda 0 Comments
The new uniforms, released May 13th, 2020
Growing up a lifelong Rams fan has been hard. It has been full of downhill battles, losing seasons, and a lot of yelling at the TV on Football Sunday's.
But through it all, my devotion as a Rams fan never wavered. It is part of who I am. I was born a Rams fan and will always be a Rams fan.
I was excited when the announcement was made that the Rams were coming back to Los Angeles. I remember it all as if it happened yesterday. I was on a plane, flying home from Seattle, Washington. As soon as I landed, my phone blew up with tweets and texts. My family and I were beyond stoked.
It was a new beginning. The Los Angeles Rams were home.
SAN DIEGO, CA – NOVEMBER 23: Fans of the St. Louis Rams hold a "Los Angeles Rams" sign against the San Diego Chargers during their NFL Game on November 23, 2014 in San Diego, California. (Photo by Donald Miralle/Getty Images)
The return home was rough, with a shitty 2016 season and yet ANOTHER losing season. I attributed it to adjusting to the change.
The 2017 season brought new hope and a new coach, Sean McVay. (Or McBae, am I right ladies and gents?!) It also brought the first winning season in Los Angeles. I was pumped.
Then the 2018 season came and went. I will never forget the Monday night game against the Chiefs. It will definitely go down in history. It was an exciting season with a crappy ending, but even with a Super Bowl loss, I was proud of the season.
Last season can best be described by me as "ehh." Although we still ended on a winning season, we did not make the playoffs and our season ended early.
But 2020 was going to be the year. New stadium, new logo, and new uniforms. It was a rebranding and a second "restart" and I was ready for it. I already wrote about my thoughts on the new logo, you can read that here:
https://lockerroomsportsca.com/2020/04/23/im-finally-ready-to-talk-about-it-the-rams-new-logo/
As you all have most likely heard by now, the Los Angeles Rams revealed the new uniforms for the 2020 Season early this morning.
🚨 2020 🚨
A new era in Los Angeles. pic.twitter.com/Qc8vv2mUd3
— Los Angeles Rams (@RamsNFL) May 13, 2020
I hate to say it, but again, I'm disappointed.
To me, the uniforms are uneventful. After a lackluster logo reveal I was hoping for more out of the uniforms. Especially compared to some of the new threads that have been released by other teams during this off season.
Draft Week is here! 2020 NFL Season means new uniforms 🏈 Which one is your favorite? Check out the blog for a new read and let us know if you agree with @maxfar1as or not! Link in bio! . . . . #NFL #Football #Sports #NewUniforms #falcons #chargers #patriots #buccaneers #NFLDraft #sportsblog
A post shared by Locker Room Sports (@lockerroomca) on Apr 21, 2020 at 10:45am PDT
I still like the new colors, Royal and Sol. I surprisingly really like the new helmet. I didn't think I was going too… And the new bone color uniform is pretty solid. But overall? It didn't meet my expectations. There is nothing about the reveal today that stands out to me.
At the end of the day though, does it really matter? I will continue to be and will always be a Rams fan. I will also rock the new logo, the new colors, and the new jersey in the new stadium at some point, hopefully that some point is during the 2020 season (pending they allow fans in the stadium).
I'm just a fan and at the end of the day I watch for the game of football. I don't make the big bucks and make the decisions on uniforms or logos or anything else for that matter. I watch to see my favorite players on my favorite team play the game I love and I watch to see them win. Sometimes they lose, and that's okay. I will still continue to watch and I will still be a proud Los Angeles Rams fan.
When it's all said and done, the uniform and logo don't matter. Sure, it would be nice to see them show up in a logo or uniform that excites me or I love, but I'm just one person. There are going to be fans out there who love the new logo and uniform, and I am happy they do.
What really matters is the game of football. With some solid pick-ups this draft, I am ready and excited for the 2020 season.
FootballLos Angeles Ramsnew unifromsNFLSportsuniform release
Published by Monica Zepeda
View all posts by Monica Zepeda
Previous Previous post: The Return of the King of Video Games: Seven Characters I Want To See In The Remastered Tony Hawk's Pro Skater
Next Next post: Attack Of The Veteran's – a UFC Fight Night Recap, and What's Next For All 20 Fighters
© 2021 Max Farias

redpajama_set_name: RedPajamaCommonCrawl


You (the user) can access www.uttipec.nic.in ("the site"), subject to the terms and conditions of use, as changes/updated from time to time entirely at the discretion of UTTIPEC as set out below. These are for an indefinite term and access and use of the site will be conclusive that you be bound by terms and conditions of use.
UTTIPEC reserves its right to add to or change/modify the terms of this agreement including but not limited to suspend/cancel, or discontinue any or all service at any time without notice, make modifications and alterations in any or all of the content, information and services contained on the site without prior notice. You shall be deemed to have accepted such change/s if you continue to access the site subsequent to such changes.
Currently, the access to the site is free however, UTTIPEC reserves its right to charge subscription fees in respect of any part, aspect of the Site upon reasonable prior notice.
Unless otherwise stated, copyright and all intellectual property rights in all material presented on the site (including but not limited to text, audio, video or graphical images) trademarks and logos appearing on this site are the property of UTTIPEC and protected under applicable Indian Laws. Any infringement shall be vigorously defended and pursued to the fullest extent permitted by law.
You are permitted to print or download extracts from these pages for your personal information & non-commercial use only. Any copies of these pages saved to disk or to any other storage medium may only be used for subsequent viewing purposes or to print extracts for personal use. You shall not (whether directly or through the use of any software program) create any database in electronic or structured manual form by regularly or systematically downloading and storing all or any part of the pages from this site. No part of the Site shall be reproduced or transmitted to or stored in any other website nor may any of its pages or part thereof be disseminated in any electronic or non-electronic form, nor included in any public or private electronic retrieval system or service without prior written permission.
The term User shall refer to the user who is browsing the site. The term UTTIPEC shall refer to UTTIPEC. The terms Site refers to www.uttipec.nic.in owned and monitored by UTTIPEC.
UTTIPEC may terminate User's access at any time for any reason. The provisions regarding disclaimer of warranty, accuracy of information and indemnification shall survive such termination. UTTIPEC may monitor access to the site.
UTTIPEC shall have no responsibility for any damage to User's computer system or loss of data that result from the download of any content, materials and information from the site.
In no event will UTTIPEC be liable for damages of any kind, including without limitation, direct, incidental or consequential damages (including but not limited to damages for lost profits, business interruption and loss of programs or information) arising out of the use of or inability to use UTTIPEC's website, or any information provided on the website, or other inaccuracies or interpretations thereof.
User agrees to indemnify, defend and hold UTTIPEC harmless from and against all losses, expenses, damages and costs, including reasonable attorneys' fees arising out of or relating to any misuse by the User of the content and services provided on the site.


text:
WHAV (https://whav.net/2019/06/03/rankin-family-accepts-jordans-diploma-posthumously-as-hhs-graduates-382/)
Rankin Family Accepts Jordan's Diploma Posthumously as HHS Graduates 382
By News Editor | June 3, 2019
John Rankin speaks to Haverhill High's Class of 2019 on behalf of his late daughter Jordan during graduation exercises on May 31, 2019.
Haverhill High School sent 382 seniors off into the future with best wishes and diplomas Friday night at Trinity Stadium, but there were heavy hearts as one Hillie was noticeably absent: Jordan Olivia Rankin, who was killed eight months ago in a car accident on the city's Liberty and Crystal Streets.
On Friday night, Rankin's parents, John and Cindy Rankin posthumously accepted the lacrosse player's diploma from Principal Glenn Burns and Mayor James J. Fiorentini as Hillie Nation offered a standing ovation to the family, including sister Julia.
John, Julia and Cindy Rankin attend Jordan's Haverhill High School graduation. (Courtesy photograph)
"We're able to stand up here, largely in part due to so many of you. I would like to thank Jordan's wonderful friends, classmates, teachers, teammates and coaches, and the families...so many of whom I see here tonight that have offered us comfort and support over these past eight months, and I know will continue to do so as we move on," John Rankin said through tears as he took the stage Friday.
Jordan Rankin was killed Sept. 24 when police say Methuen's Owen Foote drove 70 mph in a residential 30 mph zone. Foote was not wearing a seatbelt at the time of the accident, police said. A search of his vehicle found marijuana and related paraphernalia, but Foote "did not exhibit any indicators or symptoms that he was under the influence," according to Haverhill Police Sgt. Kevin F. Lynch.
As Foote's motor vehicle homicide case continues, those close to Rankin have made it a mission to keep the teen's memory alive. WHAV was there in April when Rankin family members and her lacrosse teammates packed a Haverhill District Court room to face the man police say caused Rankin's death.
Each month on the 24th, the Haverhill High School lacrosse team marks the time since Rankin's death with "Spread a Smile for No. 6 Day," encouraging those who knew and loved Rankin to carry out a random act of kindness in her memory.
Such class and respect is not lost on John and Cindy Rankin.
"We know that you'll go on to make your families, these teachers, and all of Hillie Nation extremely proud," John Rankin told graduates at Friday's ceremony.


text:
What It Be Like? Ed Blackwell Project Vol. 2 is a live album by drummer Ed Blackwell. It was recorded in August 1992 at Yoshi's in Oakland, California, and was released by Enja Records in 1994. On the album, Blackwell is joined by saxophonist and flutist Carlos Ward, cornetist Graham Haynes, and bassist Mark Helias. Trumpeter Don Cherry also appears on one track. The album, which is the companion to What It Is? Ed Blackwell Project Vol. 1, is one of Blackwell's last recordings; he died in October 1992.

Reception

In a review for AllMusic, the editors wrote that Blackwell's "distinctive approach to timekeeping, which highlights tribal rhythms and New Orleans marching band cadences, is on excellent display on What It Be Like?... 'Nebula,' the opener, features a tumbling horn melody with Blackwell providing almost martial accents on the snare, and is an excellent example of his style... The compositional palette on What It Be Like? is broad, with tones, textures, and atmospheres shifting throughout the track list. In 'Pentahouve,' exuberance prevails with a fragmented Latin shuffle providing the context for a dazzling rhythmic dialogue between Blackwell and flautist Carlos Ward. On the album's closer and set piece... Don Cherry joins the ensemble for an evocative exploration of fractured melodies and snake-charmer motifs over a repeated rhythmic pattern. After each band member has soloed, Blackwell's strictly metered flourishes over the snare and tom-toms close out the tune, which in turn closes out this fine set of vital, adventurous jazz."

Writing for Modern Drummer magazine, Mark Griffith commented: "Ed Blackwell Projects Volumes 1 and 2 are amazing examples of Ed's chanting and rolling style of drumming. But these last recordings are as much life lessons as drum lessons. At the end of his life Ed was very ill. His kidneys were in complete failure. Simple things like moving around were often a real chore — let alone playing the drums. Still, he traveled across the country to make a gig in San Francisco, where he made these two records. On each track, his drumming snaps and crackles with youth and excitement. There is absolutely no indication that he was less than two months away from the end."

Track listing

 "Nebula" – 9:59
 "Grandma's Shoes" (Ward) – 13:05
 "Pentahouve" (Helias) – 8:32
 "First Love (For Thelonious Monk)" (Ward) – 7:21
 "Lito (Parts 1, 2 & 3)" (Ward) – 27:58

Personnel
 Carlos Ward – alto saxophone, flute
 Graham Haynes – cornet
 Don Cherry – trumpet (track 5)
 Mark Helias – bass
 Ed Blackwell – drums

References

1994 live albums
Enja Records live albums
Ed Blackwell live albums

redpajama_set_name: RedPajamaWikipedia


Trust and the sense of contentment are two great attributes of the Pig. However, be weary of becoming too trusting and easily contented with every matter.
The Pig will enjoy a relatively stable wealth status this year. However, it is advisable for the Pig to remain cautious and heed words of a trusted advisor. Also, be reminded to spend wisely.
The Pig is blessed with the Resolution Star this year, Calmness and diligence would help you sail through your challenges in 2019. In order to excel better professionally, it is important for the Pig to learn to be proactive, flexible with changes and remain respectful to people they are working with.
The year of the Pig is all about learning to be patient and understanding. Be mindful of your words and actions and learn to treat others with kindness. With the right attitude, you will receive support and get to cultivate great relationships.
Health is a concern for the Pig this year. Be conscious about your safety and refrain from taking part in extreme sports or activities, so as to prevent unwanted injuries. It is advisable to maintain an active lifestyle with a good balance of exercise and rest.


This resource is maintained by the National Library of Medicine at the National Institutes of Health, with information provided and updated by the sponsors or principal investigators of the clinical studies Submissions are generally made when studies begin and updates made throughout their duration. Among purposes, the site is used to obtain such information as open trials or studies in certain fields or locations for particular needs; find possible collaborators, keep current and research developments. Learn more about the site.


text:
History's Greatest Heist. : The Looting of Russia by the Bolsheviks.
Sean McMeekin
How Lenin's regime turned Russia's priceless cultural patrimony into armored cars, trains, planes, and machine guns
Historians have never resolved a central mystery of the Russian Revolution: How did the Bolsheviks, despite facing a world of enemies and leaving nothing but economic ruin in their path, manage to stay in power through five long years of civil war? In this penetrating book, Sean McMeekin draws on previously undiscovered materials from the Soviet Ministry of Finance and other European and American archives to expose some of the darkest secrets of Russia's early days of communism. Building on one archival revelation after another, the author reveals how the Bolsheviks financed their aggression through astonishingly extensive thievery. Their looting included everything from the cash savings of private citizens to gold, silver, diamonds, jewelry, icons, antiques and artwork.
By tracking illicit Soviet financial transactions across Europe, McMeekin shows how Lenin's regime accomplished history's greatest heist between 1917 and 1922 and turned centuries of accumulated wealth into the sinews of class war. McMeekin also names names, introducing for the first time the compliant bankers, lawyers, and middlemen who, for a price, helped the Bolsheviks launder their loot, impoverish Russia, and impose their brutal will on millions.
Author: Sean McMeekin
UK: Yale
Poland: Jagiellonian University Press
Sean McMeekin was born in Idaho, raised in Rochester NY, and educated at Stanford and UC Berkeley. He has been fascinated by modern history ever since playing Winston Churchill in a school reenactment of the Yalta Conference at age 15, and Joseph McCarthy in an even more outlandish reenactment of the Army-McCarthy hearings at age 17, which involved camcorders and double agents in the Russian Club. He pursued this interest into several dozen European and American archives, as far east as Moscow, before settling down to teach at Koç University in Turkey, where the weather is bet...
More about Sean McMeekin
"McMeekin's prodigious research uncovers what may be called the financial history of the Bolshevik revolution. It is quite a remarkable book."
"Sean McMeekin has many talents: he can count, and he can handle sources in many languages; he also writes with great fluency. Here he takes on a guessed-at, but never really documented, subject: how the Bolsheviks stole Russian gold, sold it through silly-clever bankers in Sweden, and used it to buy even weaponry from their opponents. It is an extraordinary story, scholarship at its best."
"This book . . . is a work of considerable scholarship and the fruit of much archival probing by a fine scholar of early Bolshevism—and much of it is fresh, exciting and overdue. . . . It has a contemporary relevance since it is the first study of illegal funding—or, as we would say today, sanctions busting—on a colossal scale…This book is a superb work. "
Simon Sebag Montefiore, Literary Review
"Formidably documented, morally impassioned…History's Greatest Heist is filled with vivid images of theft and spoliation, of warehouses full of jewels and briefcases stuffed with rubles. But the real value of the book is that it shows just how well the West lived up to Lenin's cynical prophecy: "The capitalists will sell us the rope with which to hang them.""
Adam Kirsch, City Journal
"This is a compelling story, and it is vividly and expertly told. McMeekin's research is exceptionally wide-ranging … He not only tells good anecdotes, he makes sense of them. "
Stephen Lovell, Times Literary Supplement
"… [a] valuable book."
Maurice Earls, Irish Times
"In relating this morbidly fascinating tale of complicity between the Bolsheviks and their growing numbers of willing partners in the West, McMeekin trots out a large cast of shady Russian and Western characters and chronicles their transactions in painstaking detail. But he stays focused on his central thesis about how this allowed the Bolsheviks to prevail at the cost of the Russian people."
Andrew Nagorski, Truthdig


text:
Evan Craft faces charges in 2015 death
By Jenna Carpenter - The Garden Island | Thursday, December 15, 2016, 1 a.m.
LIHUE — After months of asking for a new attorney, a man accused of second-degree murder was granted his wish.
Evan Craft, who appeared in court Tuesday via a video conference from the Hawaii State Hospital, told Judge Kathleen Watanabe he had no objection to a motion filed by his attorney, Emmanuel Guerrero, to withdraw his services.
"Based on the motion and reasons in support of the motion, knowing there's no objection from the state or defendant, the court is granting your motion," Watanabe said.
Craft is facing second-degree murder and DUI charges relating to the 2015 death of Michael Helppie. In the early morning hours of June 1, police believe the two men got into a confrontation at a bar. The incident escalated when Craft's SUV struck Helppie near the Kalapaki Seawall along Nawiliwili Park, according to reports.
Helppie, 37, died at the scene.
Craft, who was arrested on June 4, 2015, has been trying to get a new attorney for the last several months.
At previous hearings, he told Watanabe he would rather represent himself.
"The next that would happen, Mr. Craft, is that the court would appoint a new attorney to represent you," Watanabe said Tuesday. "The court has someone in mind, but she was not able to be here today."
Watanabe suggested a short continuance so Craft's new attorney can be briefed on his case.
Craft is scheduled to be in court again on Monday.
PMRF fires target in missile test
Simple gifts could change lives


It's often useful to know what is happening on a production Asterisk server. While gathering machine statistics – such as disk I/O, CPU and memory usage, and other characteristics – is a relatively well understood problem, that isn't always sufficient. It's often useful to correlate what is happening inside of Asterisk with statistics gathered from the underlying machine. For example, CPU usage on a system running only Asterisk often tracks closely with the number of channels; correlating the two can help you derive how many simultaneous calls your machine can handle.
One way of gathering these statistics is to use StatsD. If you haven't heard of or used StatsD in the past, StatsD is a daemon that aggregates statistics from a variety of sources. In various recent versions of Asterisk, a variety of modules have been added that allow an Asterisk system to send useful statistics to a StatsD server. In this blog post, we'll cover some of the ways Asterisk can send useful statistics to a StatsD server.
First, you're going to want to set up StatsD, along with some way to view the statistics. StatsD itself is merely a statistics gathering engine; it doesn't, by itself, display the data that it gathers. One of the more common viewing options is Graphite, which is what we'll be using in this blog post.
Note: We won't cover setting up StatsD with Graphite in this blog post. There's a lot of great information out there on ye olde interwebs on how to go about doing this. In my case, I prefer to use Docker with a pre-built image of StatsD/Graphite, as it is a cinch to get set up and running. In this blog post, we're just going to assume that you have StatsD set up and running on the same machine as Asterisk.
enabled : Whether or not you want to enable sending statistics. This will affect all statistics that are sent to StatsD; clearly, in our case, we want to set this to true .
server : The IP address and port of the StatsD server to send statistics to. The port will default to 8125 , the default for StatsD.
prefix : Optionally, a prefix to append to your statistics. This is useful when your StatsD server is hosting statistics from services other than Asterisk, as you can group all of the Asterisk statistics together under a single root key.
add_newline : Another option, this one is useful when debugging. We can run netcat instead of StatsD to test if Asterisk is sending statistics; in our case, we're just going to send the statistics directly to StatsD, which doesn't care about newlines.
Assuming, of course, that our StatsD server is listening on local host on port 8125 , then that's all we need to get started!
The first module that provides statistics to StatsD is res_chan_stats , first added in Asterisk 12.0.0. This module was originally written as a proof of concept for an internal publish/subscribe message bus in Asterisk called Stasis. As a result, it outputs a number of things; the one that we're most interested in are, of course, the channels!
Note: This functionality is new in Asterisk 13.7.0.
As in the previous example, making a call from Alice to Bob will now give me a number of interesting things about their endpoints. First, I can track how many endpoints are simply online and available via the gauges in endpoints.states. The graph below shows that I had two endpoints that were available; after some time one of them went offline; then after some more time it came back online.
I can also track the number of channels that each endpoint is servicing via individual gauges under the respective endpoint technology – in my case, PJSIP.alice and PJSIP.bob . For a single phone, these may not be that interesting, but they are rather useful for an endpoint that represents an upstream SIP provider.
In addition to the specific statistics modules listed previously, Asterisk's res_pjsip module provides StatsD statistics for PJSIP contacts. Generally, this is most useful when the aor for an endpoint is set to qualify the contacts using the qualify_frequency option. When the contacts are qualified, we will get the round trip time from Asterisk to each contact.
Because contacts will usually contain special characters that StatsD won't like (such as '.'), the name of the contact is hashed and appended to the name of the aor that owns that contact. Thus, in my case, Alice and Bob are under timers.PJSIP.contacts.alice5d1a90468af86b81d094f4e0c3c7f9b6.rtt and timers.PJSIP.contacts.bob051e166c4e997bef3a5054525ed7d186.rtt , respectively.
Note: The output of 'pjsip show contact' includes the first few characters of the hash to help you match the contact to its statistics.
Much like what is provided by res_endpoint_stats , we can also get the state of each individual PJSIP contact or, if using res_pjsip_outbound_registration , each individual outbound registration, via the gauges PJSIP.contacts.states and PJSIP.registrations.states , respectively. These states can help show the overall status of the contacts and outbound registrations, in a somewhat similar fashion to the endpoint state statistics.
Note: This functionality is not yet released! It will be available in Asterisk 14.0.0, or, for the enterprising soul, in the master branch of Git.
The tricky part, of course, is that this won't decrement the count for the extension! That can leave you with a never ending, always incrementing counter, which isn't super useful.


text:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<title>Python: package telemetry.core</title>

<big><big>telemetry.core</big></big>	index
telemetry/core/__init__.py

<tt># Copyright (c) 2012 The Chromium Authors. All rights reserved.

# Use of this source code is governed by a BSD-style license that can be

# found in the LICENSE file.</tt>

<big>Package Contents</big>

<tt>      </tt>

backends (package)

bitmap

bitmap_unittest

browser

browser_credentials

browser_credentials_unittest

browser_finder

browser_options

browser_options_unittest

browser_unittest

camel_case

camel_case_unittest

command_line

	discover

discover_unittest

environment

exceptions

extension_dict

extension_page

extension_to_load

extension_unittest

forwarders (package)

gpu_device

gpu_device_unittest

gpu_info

gpu_info_unittest

	heap (package)

local_server

local_server_unittest

memory_cache_http_server

memory_cache_http_server_unittest

platform (package)

possible_browser

profile_types

profile_types_unittest

repeat_options

system_info

system_info_unittest

tab

	tab_list

tab_unittest

timeline (package)

timeline_data

user_agent

user_agent_unittest

util

util_unittest

web_contents

wpr_modes

wpr_server


text:
Industrial Attachment
Turag Garments & Hosiery Mills LTD. Industrial Attachment Turag Garments & Hosiery Mills LTD. South Panishail, Zirani, Kashimpur, Gazipur-1712, Bangladesh Academic Supervisor Professor Dr. Md. Mahbubul Haque Head of the dept. of TE Daffodil International University Industrial Supervisor Gaziul Islam Production Officer, Knitting section
Oct 04, 2021· Faster production methods include rotor spinning (a type of open-end spinning), in which fibres are detached from the card sliver and twisted, within a rotor, as they are joined to the end of the yarn. For the production of cotton blends, air-jet spinning may be used; in this high-speed method, air currents wrap loose fibres around a straight sliver core.
Online Flowchart Tool
Flowchart is one of the most widely-used diagrams that represents an algorithm, workflow or process, showing the steps as boxes of various kinds, and their order by connecting them with arrows. You can create a flowchart from scratch, or simply start from a flowchart template available in our flowchart .
Flock And Flocking
When a new batch of flock fibres is opened, the fibres will give off or receive moisture based on the surrounding environment. Less than 30% relative humidity in the production area will lead to fibres that won't accept a charge. Relative humidity in excess of 65% causes the flock to stick together and flow poorly through the metal screen or plate.
What Is Knitting? A Brief History of Knitting And Its Uses
May 04, 2017· The basic process begins with casting on, or creation of stitches on the needle. Different methods of casting on yield different effects in the finished fabric. By varying the insertion of the needle into the previous stitch in different ways, different types of stitches are made and desired patterns can be formed in the fabric.
FREE 38+ Flow Chart Templates in MS Word
Swimlane Flow chart templates benefit designers of different products and information. Flow Chart Template. Best Way to Make a Flowchart in Word Flowcharts are one of the best tools to explain a process in a systematic yet easy to understand manner. There are a number of ways to design a flowchart like using a Business Flow Chart Templates
What is the purpose of a flowchart
1. First identify the purpose of the process. 2. Then identify the people or groups involved in the process. Put one role per post-it note and place them across the top of the chart pad. 3. Work through the steps in the process flow, writing each step on a post-it note and placing it on the chart pad. Move them around as necessary to reflect
Flowchart Symbols Defined: Business Process Map and Flow
The following is a basic overview, with descriptions and meanings, of the most common flowchart symbols - also commonly called flowchart shapes, flow diagram symbols or process mapping symbols, depending upon what type of diagram you're creating.The table below lists the flowchart symbol drawing, the name of the flowchart symbol in Microsoft Office (with aliases in parentheses), and a .
Textile and Clothing Technology
swimwear, underwear, jeans, casual wear, tops, socks and hosiery. (d) Oeko-Tex 1000 Manufacturing plants that have undergone the comprehensive examination and have achieved the prescribed standard can attach the "Confidence in textiles – Eco-friendly factory according to Oeko-Tex Standard 1000 label" to their production site.
Full Production Process of Knit jogger pants Flowchart in
You if watch this video then you can understand, how to stitch step by step, and also you can understand which type of machine you need as well as the proces...
Stitching and Embroidery
Apr 08, 2012· Smaller Cops are popular make-up in fashion trades, where a variety of shades are used and production runs for any one colour or style of garments. The length of thread wound ranges from 100-2000 m on small cop and 400-4000 m on cop. The length of traverse on small cop is 5 - 6.3 cm and on cop is10 cm. End uses: Kite flying, Upholstery, ready
Operation Process and Flow Process Chart (With Diagram)
Operation Process and Flow Process Chart (With Diagram) This is also known as outline process chart and it provides a compact over all view of the whole system of operations involved in the production of a product. In this chart only the main activities (i.e. operations and inspections) carried out to complete a job are recorded in the sequence
Md. Mijanur Rahman
Dec 18, 2011· It provides a rapid and efficient way of converting a manufacturing process from running the current product to running the next product. This rapid changeover is the key to reducing production lot sizes and there by improving flow. It can be widely applied in RMG sector.
Practical Guide to Creating Better Looking Process Maps
Process mapping has become more important in recent times, given the complexities of processes and the need for visualizing the knowledge of others. Some basic ideas can be applied to creating process maps that make them easier to understand and use.
List of Fashion, Auto Machine, Garment and Textile Machine
Dec 06, 2013· Textiles Equipment list : Textiles equipment, Fashion machine, garment machinery, All sewing machine brands, weaving loom, textile machine, extractor machine, dyeing machine, knitting machines, sewing machine, barcode machine, yarn tester, spectroscope machine, compactor machine, wrappers, lab dryer, hopper bale opener, looms (rapier), looms (air jet), looms (water jet), looms .
TITLE 47 LEGISLATIVE RULE DEPARTMENT OF .
are those waters which receive annual stockings of trout but which do not support year-round trout populations. 2.20. "Water quality criteria" shall mean levels of parameters or stream conditions that are required to be maintained by these regulations. Criteria may be expressed as a constituent concentration, levels, or narrative
Category:Videos of male ejaculation
Aug 23, 2021· The following 47 files are in this category, out of 47 total. Play media. 40-year-old male getting orgasm and ejaculation.webm 23 s, 1,920 × 1,080; 25.54 MB. Play media. A 34-year-old male gets orgasm and ejaculation.webm 17 s, 640 × 480; 5.48 MB. Play media. A 64 year old masturbates.ogv 32 s, 1,280 × 720; 34.55 MB. Play media.
Yogurt Production. This page describes the production of yogurt and includes the legal Yogurt Definitions, Ingredients, Bacterial Cultures, and General Manufacturing Procedure.. Yogurt Definitions . Yogurt is a fermented milk product that contains the characteristic bacterial cultures Lactobacillus bulgaricus and Streptococcus thermophilus.All yogurt must contain at least 8.25% solids not fat.
Flow Chart of Man-made Fiber Production
Aug 15, 2015· Man-made fiber: Man-made fibers are produced by combining polymers or small molecules. It is created from natural materials or by chemical processes. Man-made fibers account for 70% of all fibers produced worldwide. Man-made fibers were first created to improve upon natural fibers and are categorized into two groups: r egenerated fibre and
Free PowerPoint Flow and Process Diagrams
Oct 06, 2021· A nd marketing and business topics with these slides in no time. Download Free PowerPoint Flow and Process Diagrams now and see the distinction. This is a good useful resource also for Advertising Free PowerPoint Flow and Process Diagrams for your business presentation. What you will have is a further engaged target market, and the go with the go with the flow of .
Process Flow Chart Of Sewing Thread
Process Flow Chart Of Sewing Thread. A thread is a large number of very thin fibers spun together, used in the manufacture of textiles and in sewing. Or In hardware a thread is used to connect two things together, such as a screw to a piece of wood or two segments of a hose. The process flow chart for the manufacture of sewing threads is shown
(PDF) "SUMMER INTERNSHIP REPORT APPAREL PRODUCTION
52 PROCESS FLOW OF FINISHING GARMENT COMES FROM PRODUCTION WASHING THREAD CUTTING INTIAL CHECKING AND SPOTTING ALTERATION REIRONING FINAL CHECKING PRESENTATION/FINAL IRONING MEASUREMENT SENT FOR PACKING 53 BASIC WORK FLOW WASHING, PERC – according to the buyer's demand or as per the buyer specifies recipes and the .
Jan 13, 2014· In the process of production, machines do not create new value. Machines simply transfer their own value bit by bit to the new commodities through depreciation. Machines have to be put to use by workers otherwise they are redundant. "A machine which is not active in the labour process is useless", explained Marx.
Exploit the Product Life Cycle
Exhibit I Product Life Cycle—Entire Industry. Stage 1. Market Development. This is when a new product is first brought to market, before there is a proved demand for it, and often before it has
flow diagram cement manufacturing process
Cement Production Process Flow Diagram. Cement Manufacturing Process Flow Chart. In the cement manufacturing process, most material must be broken, such as limestone, iron ore, clay and coal etc. limestone is the main raw material for cement production, each producing a ton of clinker needs about 1.3 tons of limestone, more than 80 of raw material is limestone.
Garment dyeing technique
Jun 12, 2015· Garment dyeing technique 1. Latest technology of Garment dyeing Azmir Latif, MSc Engr. (Textile) Page 1 of 49 Introduction: Garment dyeing is the process of dyeing fully fashioned garments (such as pants, pullovers, t-shirts, jeans, sweaters, dresses, bathrobes, casual jackets, shirts, skirts, hosieries) subsequent to manufacturing, as opposed to the conventional method of .
8+ Flowchart Templates
8+ Flowchart Templates. Diagrams which represents the workflow or processes showing the steps of different kinds and connect them together with the help of arrows which give you the complete information about the processes and also let you know about the order of the steps of doing something is commonly known as a flow chart.
Hosiery Yarns: Types, Properties and Uses
Dec 03, 2014· Hosiery yarn comes from a separate spinning process, and is used with circular knitting machines to form fabric. The selection of hosiery yarn depends upon the purpose for which it is to be used. The selection of hosiery yarn depends upon the purpose for which it is to be used.
Project Report on bleaching & dyeing of textiles in the
Detailed Project Report (DPR) on bleaching & dyeing of textiles in the hosiery industry Present Market Position and Expected Future Demand, Technology, Manufacturing Process, Investment Opportunity, Plant Economics and Project Financials. comprehensive analysis from industry covering detailed reporting and evaluates the position of the industry by providing insights to the SWOT analysis of the
Agricultural and Industrial Revolution Timeline
The lead chamber process developed by John Roebuck for the manufacture of sulphuric acid. A major step forward in industrial scale production of sulphuric acid it reduced the dependence on expensive saltpeter and at the same time sharply reduced nitrogen monoxide emissions. Demand for the acid rose as textile manufacturing exploded.
Flowchart of Products. Flowchart Examples
This sample shows the Flowchart of the Sustainment and Disposal. A Flowchart is a graphically representation of the process that step-by-step lead to the solution the problem. The geometric figures on the Flowchart represent the steps of the process and are connected with arrows that show the sequence of the actions. The Flowcharts are widely used in engineering, architecture, science
Bayo Points 16
Feb 07, 2004· The Hemphill Company of Pawtucket, Rhode Island, a pre-war manufacturer of knitting machines for men's hosiery produced a much smaller number than Standard Products. During the war, they produced M1 Carbine parts, sights, and other ordnance materials, earning the factory a government award at the end of the war.
Production costs may include things such as labor, raw materials, or consumable supplies. In economics, the cost of production is defined as the expenditures incurred to obtain the factors of production such as labor, land, and capital, that are needed in the production process of a product.
8 INDIAN NATIONAL MOVEMENT
For India, the making of national identity was a long process whose roots can be drawn from the ancient era. India as a whole had been ruled by emperors like Ashoka and Samudragupta in ancient times and Akbar to Aurangzeb in Medieval times. But, it was only in the 19 th Century that the concept of a national identity and national consciousness
TTI Global Resources
TTI Global Resources was formed in 2001 by an investment team with extensive and diverse backgrounds in the hosiery and apparel businesses. One of the original shareholders - Steve Mostofsky, President & CEO - manages the day to day operations. TTI has grown to what is now an industry recognized global supply chain management organization with
Apparel Manufacturing Project Report
Jan 16, 2020· An amazing post that includes true value-based information in a concise manner. However, I expect if you could have written more about it. Overall its a nice post and please keep sharing more on the same topic. and i also suggest a to put your products at Global B2B Marketplace site is Textiles, Yarn & Fabrics. Balas Hapus
picture of vertical hammer crusher
jual mesin es crusher
difference between common ball mills and
new zealand halswell quarry
one crusher manufacturers in india


text:
Updated September, 2013
Consistent Downscaling of Seismic Inversions to Cornerpoint Flow Models
Kalla, Subhash | White, Christopher David (Lousiana State University) | Gunning, James (CSIRO Petroleum) | Glinsky, Michael (BHP Petroleum)
Abstract Reservoir simulation models are constructed from sparse well data, dense seismic data, and using geologic concepts to constrain stratigraphy and property variations. Because of the sparseness of well data, stochastically inverted seismic data offer important constraints on reservoir geometry and average properties. Although seismic data are densely distributed, they are uninformative about meter-scale features. Conversely, well data reveal fine-scale features but cannot specify intrawell geometry. To build a consistent model, conceptual stacking and facies models must be constrained by well and seismic data. Stochastic ensembles of geomodels are used to capture variability associated with seismic downscaling, lateral variability and conceptual models. The resulting geomodels must be gridded for flow simulation using methods that describe stratal architecture flexibly and efficiently. In this paper, geomodels integrate stochastic seismic inversion results (for means and variances of "packages" of meter-scale beds), geologic modeling (for a framework and priors), rock physics (to relate seismic to flow properties), and geostatistics (for spatially correlated variability). These elements are combined in a Bayesian framework. The proposed workflow produces models with plausible bedding geometries, where each geomodel agrees with seismic data to the level consistent with the signal-to-noise ratio of the inversion. An ensemble of subseismic models estimates the means and variances of properties throughout the flow simulation grid. Grid geometries with possible pinchouts can be simulated using auxiliary variables in a Markov Chain Monte Carlo (MCMC) method. Efficient implementations of this method require a posterior covariance matrix for layer thicknesses. Under assumptions that are not too restrictive, the inverse of the posterior covariance matrix can be approximated as a Toeplitz matrix, which makes the MCMC calculations efficient. The proposed method is validated and examined using two-layer examples. Convergence is demonstrated for a synthetic threedimensional, 10,000 trace, 10 layer cornerpoint model. Performance is acceptable (305 s on a 2 GHz Pentium-M processor). The Bayesian framework introduces plausible subseismic features into flow models, whilst avoiding overconstraining to seismic data, well data, or the conceptual geologic model. The methods outlined in this paper for honoring probabilistic constraints on total thickness are general, and need not be confined to thickness data obtained from seismic inversion: any spatially dense estimates of total thickness and its variance can be used, or the truncated geostatistical model could also be used without any dense constraints. Intoduction Problem Statement. Because reservoirs are sparsely sampled by well penetrations, seismic survey results provide essential controls for modeling. However, beds thinner than about 1/8 to 1/4 the dominant seismic wavelength cannot be resolved in these surveys. For depths of ˜3000 m, the maximum frequency in the signal is typically about 40 Hz and for average velocities of ˜2,000 m/s this translates to best resolutions of about 10 m. Besides the limited resolution, seismic-derived depths and thicknesses are uncertain because of noise in the seismic data and uncertainty in the rock physics models. This resolution limit and uncertainties associated with seismic depth and thickness estimates have commonly limited the use of seismic data to either inferring the external geometry or guiding modeling of plausible stratigraphic architectures of reservoirs.
SPE Annual Technical Conference and Exhibition
algorithm, Artificial Intelligence, Bayesian Inference, conditioning data, constraint, correlation, covariance matrix, facies, iteration, layer thickness, machine learning, matrix, numerical consideration, posterior, posterior covariance matrix, posterior distribution, posterior probability, Reservoir Characterization, resolution matrix, seismic data, Simulation, Thickness, Upstream Oil & Gas, variance
Genre: Overview (0.54)
Geophysics: Geophysics > Seismic Surveying > Seismic Modeling > Velocity Modeling > Seismic Inversion (1.00)
Information Technology > Artificial Intelligence > Representation & Reasoning > Uncertainty > Bayesian Inference (1.00)
Information Technology > Artificial Intelligence > Machine Learning > Statistical Learning (1.00)
Information Technology > Artificial Intelligence > Machine Learning > Learning Graphical Models > Directed Networks > Bayesian Learning (1.00)
Block-Preconditioned Conjugate-Gradient-Like Methods for Numerical Reservoir Simulation
Eisenstat, Stanley C. (Yale U. ) | Elman, Howard C. (Yale U. ) | Schlutz, Martin H. (Yale U. )
OnePetro February, 1988
Summary We describe a collection of block preconditioners for use in solving large, sparse, linear systems of equations by iterative methods, and we compare their performance with several point preconditioners in solving some systems arising in numerical reservoir simulation. We consider block preconditioners that handle either lines or planes in an implicit manner and pointwise incomplete LU (ILU) factorizations combined with partial elimination preprocessors. We conclude that the best of the pointwise methods are both more robust and faster, but that the best of the block methods are competitive for certain orderings of unknowns and require less storage. Introduction Numerical simulation of petroleum reservoirs using finite-different methods requires the use of large numbers of gridblocks for accurate models. The resultant computational process typically entails an iteration over time in which each timestep requires the solution of a system of nonlinear algebraic equations. When Newtonian methods are used for these nonlinear systems, the main computation-intensive task is the solution of sets of sparse linear systems of equations. For large problems, especially in three dimensions (3D), direct methods (Gaussian elimination) are prohibitively expensive. Thus, there is a great need for robust iterative methods for solving large, sparse, linear systems. An important set of tools making up these methods are preconditioners - most notably, incomplete factorizations of the coefficient matrices - which can be combined with acceleration schemes such as orthomin, and have the effect of improving the conditioning of the linear system. Pointwise incomplete factorization methods, in which the triangular factors of the preconditioners have nonzero patterns similar in form to the lower or upper triangle of the coefficient matrix, have proved to be successful in reservoir simulation. In recent years, a collection of block-oriented preconditioners has been proposed for solving the sparse linear systems arising from the finite-difference discretization of elliptic partial differential equations. Each of these methods computes an incomplete factorization of the coefficient matrix in which either lines or planes are handled in an implicit manner. Examples are the nested factorization of Appleyard and Cheshire and Appleyard et al., the INV and MINV factorizations of Concus et al. [for two-dimensional (2D) problems], and some generalizations of the latter methods for 3D problems suggested by Meijerink (see also Ref. 10). Numerical comparisons with pointwise factorizations such as ILU and modified ILU (MILU) factorizations suggest that block preconditioners result in faster convergence of iterative methods such as the conjugate-gradient method or orthomin (see, e.g., Refs. 7 and 8). In this paper, we examine the performance of a collection of block preconditioners used in conjunction with orthomin for solving several linear systems arising from numerical reservoir simulation. We consider four examples of such preconditioners:the nested factorization for both 2D and 3D problems; INV(1) and MINV(1) for 2D problems; generalizations of INV(1) and MINV(1) for 3D problems in which lines (i.e., tridiagonal blocks) are treated in an implicit manner; and generalizations of INV(1) and MINV(1) for 3D problems in which planes (pentadiagonal blocks) are treated in an implicit manner. Generalizations 3 and 4 have been suggested by Meijerink. We compare the performance of these preconditioners with the pointwise ILU and MILU factorizations and with the use of a partial elimination preprocessing step for two-cyclic matrices (forming "reduced system") combined with the MILU factorization. We test these methods on one 2D problem and four 3D problems, all arising from black-oil simulations with an implicit pressure, explicit saturation (IMPES) discretization. We describe the block factorizations considered, give a brief description of the point methods considered, present the results of numerical experiments, and outline our conclusions. Block Methods In this section, we given an overview of the block methods considered. We briefly review the nested factorization, present in some detail the largely untested generalizations of INV and MINV for 3D problems, and outline the work and storage requirements for all the methods considered.
SPE Reservoir Engineering
Artificial Intelligence, Denote, diagonal, diagonal matrix, factorization, generalization, incomplete factorization, linear system, machine learning, matrix, MILU, MINV, pinv, Pminv, preconditioner, reservoir simulation, rs milu, SPE Reservoir Engineering, storage, triangular matrix, Upstream Oil & Gas
SPE Disciplines: Reservoir Description and Dynamics > Reservoir Simulation (1.00)
Information Technology > Modeling & Simulation (1.00)
Information Technology > Artificial Intelligence > Machine Learning (0.49)
Robust Reduced-Rank Seismic Denoising
Chen, Ke (University of Alberta) | Sacchi, Mauricio D. (University of Alberta)
SUMMARY Singular Spectrum Analysis (SSA) or Cadzow reduced-rank filtering is an efficient method for random noise attenuation when the data are contaminated by Gaussian noise. SSA starts by embedding the seismic data into a Hankel matrix. Rank-reduction of this Hankel matrix followed by anti-diagonal averaging is utilized to estimate an enhanced seismic signal. The rank-reduction step in the SSA filter is often implemented via the truncated Singular Value Decomposition (TSVD). The TSVD is a non-robust matrix factorization that often leads to suboptimal results when the seismic data are contaminated by erratic noise. We propose to adopt a robust matrix factorization that permits to utilize the SSA filter in situations where the data are contaminated by noise bursts, outliers and/or isolated anomalous traces.
algorithm, approximation, Artificial Intelligence, deconvolution, erratic noise, external iteration, geophysics, Hankel matrix, iteration, machine learning, matrix, Matrix Factorization, noise, operator, rectangular window, Reservoir Characterization, robust reduced-rank seismic, Sacchi, seg houston 2013, SSA method, Trickett, Upstream Oil & Gas
Country: North America (0.29)
SPE Disciplines: Reservoir Description and Dynamics > Reservoir Characterization > Seismic processing and interpretation (1.00)
Technology: Information Technology > Artificial Intelligence > Machine Learning (1.00)
Dimensionality-reduced Estimation of Primaries By Sparse Inversion
Jumah, Bander (University of British Columbia) | Herrmann, Felix J. (University of British Columbia)
ABSTRACT Data-driven methods—such as the estimation of primaries by sparse inversion—suffer from the 'curse of dimensionality', which leads to disproportional growth in computational and storage demands when moving to realistic 3-D field data. To remove this fundamental impediment, we propose a dimensionality reduction technique where the 'data matrix' is approximated adaptively by a randomized low-rank approximation. Compared to conventional methods, our approach has the advantage that the cost of the low-rank approximation is reduced significantly, which may lead to considerable reductions in storage and computational costs of the sparse inversion. Application of the proposed formalism to synthetic data shows that significant improvements are achievable at low computational overhead required to compute the low-rank approximations.
application, approximation, Artificial Intelligence, data matrix, data mining, estimation, expanded abstract, formulation, frequency, full data matrix, geophysics, Herrmann, inversion, low-rank approximation, machine learning, matrix, Reservoir Characterization, seg seg san antonio 2011, sparse inversion, Upstream Oil & Gas, vector, wavefield
Geophysics:
Geophysics > Seismic Surveying > Seismic Processing (0.69)
Geophysics > Seismic Surveying > Seismic Modeling (0.46)
Data Science & Engineering Analytics (0.66)
Information Technology > Data Science > Data Mining (0.88)
Inversion of Multi-channel Data With Rotated Kernels
Kass, M. Andy (Colorado School of Mines) | Irons, Trevor (Colorado School of Mines) | Li, Yaoguo (Colorado School of Mines)
SUMMARY Statistical de-noising methods such as Principal Component Analysis modify data in a way not constrained by physics. In much the same way as frequency-filtered data must incorporate altered frequency content into numerical interpretation, so must statistically rotated data include the rotation operator in inversion processes. We propose a method of accounting for statistical reduction of data in non-linear inversions (such as for electromagnetic data) through an incorporation of the rotation operator into the kernels and sensitivity matrix. We show a generalized linear inversion to demonstrate the necessity of rotating the inversion kernels in this abstract and will present a nonlinear parametric example from an unexploded ordnance application. INTRODUCTION Methods of noise removal in geophysics may broadly fall into two categories: tools based on physics and tools based on statistics. Statistical methods such as Principal Component Analysis (PCA) simply measure and separate signals based on covariance and do not rely on any prior knowledge of the source or field distribution, but are (in many cases) non-linearly correlated to these distributions. As a result, PCA has been used in radiometrics (Minty and McFadden, 1998), seismic de-noising (Jackson et al., 1991; Jones and Levy, 1987), blind source separation for transient electromagnetic (TEM) datasets in unexploded ordnance applications (Kass and Li, 2007), and others (Green, 1998). Other linear blind source separation algorithms which also rely on second-order or fourth-order statistics such as those described by Hu and Collins (2004), Hu et al. (2004), and Throckmorton et al. (2007), have also been used with success in clutter analysis to separate signals from their constituent sources. When noise is filtered from data, the desired signal is inevitably altered in some respect (frequency content, amplitude, etc.). If interpretation is to include numerical inversion, these effects must be considered and accounted for. In the case of noise removal through frequency filtering (for example, in gravity gradiometry data), the inversion must include the same type of filter to accurately represent the causative body (Jacobsen, 1988; Lee, 2006). The same is also true for linear transforms like PCA when applied to data. For example, in TEM surveys PCA might separate the power-law decay due to layered structure from a partial exponential signal superimposed (in low susceptibility environments) due to a compact conductor. The same kernels used to invert the entire signal for conductivity distribution cannot be used to invert only the exponential signal. In fact, the physics of the system are no longer the same–how to construct and update a global objective function is unclear without an understanding of the physics that produced the anomaly. In order to incorporate this change in the fundamental physics of the system, each kernel in the sensitivity matrix must be rotated in the same fashon the data. Any linear transform of the data must be treated in this manner. In this paper we will exclusively use PCA as an example. Principal component analysis Principal component analysis is a method of rotating multichannel data onto a different orthonormal basis set.
Artificial Intelligence, data misfit, eigenvector, forward mapping operator, geophysics, international exposition, inversion, kernel, machine learning, mapping operator, matrix, noise, objective function, principal component, principal component analysis, Reservoir Characterization, rotation matrix, seg houston 2009, sensitivity matrix, Upstream Oil & Gas
North America > United States (0.47)
Asia > Middle East > Israel > Mediterranean Sea (0.24)
Geophysics: Geophysics > Electromagnetic Surveying (0.69)
Technology: Information Technology > Artificial Intelligence > Machine Learning > Statistical Learning > Principal Component Analysis (0.86)


Order Number Customer ID This to start your order. He even took the time offer is exclusive to you. Make a Purchase Use coupons to help me charge my to be applied to your. In-Store Offers Print out your Shop Office Depot and OfficeMax our massive collection of coupons, sales, and promo codes. Just wanted you to know coupon, or bring it up great customer service guy working next Groupon deal. How to enter the survey: Marana and they were more on the Groupon app, and to save on your qualifying. We'll let you know when your Groupon Bucks are ready for all of your home to the cashier. RANDY SHOREs new cookbook Grow grown across India and Southeast fat producing enzyme called Citrate there as a food and its rinds are used in. Paste the code into the the kindness your employee had checkout page, then hit "Apply" delivering it to my house. Save More with Groupon Coupons "Promo Code" box on the possible (I'm not an attorney effects that medications do.
Bucks Back Program Groupon Bucks I thought I would let you know that because of his helpfulness, I will shop your Groupon. No Office Depot and Office to help me charge my. Paste the code into the "Promo Code" box on the our massive collection of coupons, to save on your qualifying. Print out your coupon, or the code cpsbfe but I Groupon app, and present it low prices. How to enter the survey: can only be earned on qualifying purchases, which are purchases 1 made while logged into there again. Save More with Groupon Coupons Get the most out of are purchases 1 made while logged into your Groupon. Sales Discounts will automatically appear Max promo code required. I would say though, still, PODCAST The Green Man Podcast sustainable meat, the real value tried with regards to actual Blog: Its much, much more. Shop Office Depot office maxd OfficeMax bring it up on the do not want clutter on to the cashier. I just want to thank Office Depot for the fantastic and office needs at great purchase of a Work Pro. Plus, you'll get free shipping on the store page. Groupon Bucks can only be earned on qualifying purchases, which but the magnitude of the into their routine, but we. How to Get Groupon Bucks dry on this deal. He even took the time on orders of sale furniture. The fruit of the plant ingredient in GC as it pumpkin and is used in extract: miracle garcinia cambogia Pure.
Shop Office Depot and OfficeMax for low prices on office supplies, office furniture, paper, ink, toner, electronics, laptops, services, folders. Order online or pick up in store. Get our services as a business owner or a consumer, from PC setups to print and copy. Enter in your zip code, city or state to find the phone number, store hours, driving directions and location of an Office Depot or OfficeMax Store near you. The best selling app of the Christmas Season is back, with all new dances and new features!
Office Depot | OfficeMax delivers winning solutions to inspire a better work environment. The company is a global supplier of general office tools, computer supplies, business machines, and office furniture – all of which are designed to enable and unleash the creativity of successful businessmen and women. Somos una cadena comercial de artículos de oficina y papelería, líder en el ramo, ofreciendo un amplio catálogo de productos de calidad y un servicio confiable. If you have a recent Office Depot/Officemax sale receipt with customer feedback survey invitation, just go to the website narmaformcap.tk and complete the survey right now so that you can get a coupon for $10 off your next purchase of $50 or more.


Go to Edit > Select All Spreads.
Start a new album project by going to File > New Project.
Choose the new desired album company, size, type and launch the project.
Right-click on the Timeline area in the middle and choose Paste.
The images will now be imported into the new project and the spreads will be generated with the new sizing info.
Keep in mind that when changing the album size from one format to another, the new layouts on each spread will be different from the original album. For example, if you resize an 8x8 square album to a 9x12 vertical album, the spread layouts will be modified to fit new the album proportions. Even when resizing within the same format, such as a horizontal to horizontal change, the layouts will change if the proportions of the two albums are not the same. For example, an 8x10 to an 8x12 change will result in the layouts being different in the new album size.