ROCm

ROCm

ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains, including general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), and heterogeneous computing. It offers several programming models: HIP (GPU-kernel-based programming), OpenMP (directive-based programming), and OpenCL. ROCm is free, libre and open-source software (except the GPU firmware blobs), and it is distributed under various licenses. The name initially stood for Radeon Open Compute platform; however, due to Open Compute being a registered trademark, the name no longer functions as an acronym. == Background == The first GPGPU software stack from ATI/AMD was Close to Metal, which became Stream. ROCm was launched around 2016 with the Boltzmann Initiative. ROCm stack builds upon previous AMD GPU stacks; some tools trace back to GPUOpen and others to the Heterogeneous System Architecture (HSA). === Heterogeneous System Architecture Intermediate Language === HSAIL was aimed at producing a middle-level, hardware-agnostic intermediate representation that could be JIT-compiled to the eventual hardware (GPU, FPGA...) using the appropriate finalizer. This approach was dropped for ROCm: now it builds only GPU code, using LLVM, and its AMDGPU backend that was upstreamed, although there is still research on such enhanced modularity with LLVM MLIR. == Programming abilities == ROCm as a stack ranges from the kernel driver to the end-user applications. AMD has introductory videos about AMD GCN hardware, and ROCm programming via its learning portal. One of the best technical introductions about the stack and ROCm/HIP programming, remains, to date, to be found on Reddit. == Hardware support == ROCm is primarily targeted at discrete professional GPUs, but consumer GPUs and APUs of the same architecture as a supported professional GPU are known to work with ROCm. For example, all professional GPUs of the RDNA 2 architecture are officially supported by ROCm 5.x; users report that Consumer RDNA2 units such as the Radeon 6800M APU and the Radeon 6700XT GPU also work. === Professional-grade GPUs === === Consumer-grade GPUs === == Software ecosystem == === Machine learning === Various deep learning frameworks have a ROCm backend: PyTorch TensorFlow ONNX MXNet CuPy MIOpen Caffe Iree (which uses LLVM Multi-Level Intermediate Representation (MLIR)) llama.cpp === Supercomputing === ROCm is gaining significant traction in the top 500. ROCm is used with the Exascale supercomputers El Capitan and Frontier. Some related software is to be found at AMD Infinity hub. === Other acceleration & graphics interoperation === As of version 3.0, Blender can now use HIP compute kernels for its renderer cycles. === Other languages === ==== Julia ==== Julia has the AMDGPU.jl package, which integrates with LLVM and selects components of the ROCm stack. Instead of compiling code through HIP, AMDGPU.jl uses Julia's compiler to generate LLVM IR directly, which is later consumed by LLVM to generate native device code. AMDGPU.jl uses ROCr's HSA implementation to upload native code onto the device and execute it, similar to how HIP loads its own generated device code. AMDGPU.jl also supports integration with ROCm's rocBLAS (for BLAS), rocRAND (for random number generation), and rocFFT (for FFTs). Future integration with rocALUTION, rocSOLVER, MIOpen, and certain other ROCm libraries is planned. === Software distribution === ==== Official ==== Installation instructions are provided for Linux and Windows in the official AMD ROCm documentation. ROCm software is currently spread across several public GitHub repositories. Within the main public meta-repository, there is an XML manifest for each official release: using git-repo, a version control tool built on top of Git, is the recommended way to synchronize with the stack locally. AMD starts distributing containerized applications for ROCm, notably scientific research applications gathered under AMD Infinity Hub. AMD distributes itself packages tailored to various Linux distributions. ==== Third-party ==== There is a growing third-party ecosystem packaging ROCm. Linux distributions are officially packaging (natively) ROCm, with various degrees of advancement: Arch Linux, Gentoo, Debian, Fedora , GNU Guix, and NixOS. There are Spack packages. == Components == There is one kernel-space component, ROCk, and the rest - there is roughly a hundred components in the stack - is made of user-space modules. The unofficial typographic policy is to use: uppercase ROC lowercase following for low-level libraries, i.e. ROCt, and the contrary for user-facing libraries, i.e. rocBLAS. AMD is active developing with the LLVM community, but upstreaming is not instantaneous, and as of January 2022, is still lagging. AMD still officially packages various LLVM forks for parts that are not yet upstreamed – compiler optimizations destined to remain proprietary, debug support, OpenMP offloading, etc. === Low-level === ==== ROCk – Kernel driver ==== ==== ROCm – Device libraries ==== Support libraries implemented as LLVM bitcode. These provide various utilities and functions for math operations, atomics, queries for launch parameters, on-device kernel launch, etc. ==== ROCt – Thunk ==== The thunk is responsible for all the thinking and queuing that goes into the stack. ==== ROCr – Runtime ==== The ROC runtime is a set of APIs/libraries that allows the launch of compute kernels by host applications. It is AMD's implementation of the HSA runtime API. It is different from the ROC Common Language Runtime. ==== ROCm – CompilerSupport ==== ROCm code object manager is in charge of interacting with LLVM intermediate representation. === Mid-level === ==== ROCclr Common Language Runtime ==== The common language runtime is an indirection layer adapting calls to ROCr on Linux and PAL on windows. It used to be able to route between different compilers, like the HSAIL-compiler. It is now being absorbed by the upper indirection layers (HIP and OpenCL). ==== OpenCL ==== ROCm ships its installable client driver (ICD) loader and an OpenCL implementation bundled together. As of January 2022, ROCm 4.5.2 ships OpenCL 2.2, and is lagging behind competition. ==== HIP – Heterogeneous Interface for Portability ==== The AMD implementation for its GPUs is called HIPAMD. There is also a CPU implementation mostly for demonstration purposes. ==== HIPCC ==== HIP builds a `HIPCC` compiler that either wraps Clang and compiles with LLVM open AMDGPU backend, or redirects to the NVIDIA compiler. ==== HIPIFY ==== HIPIFY is a source-to-source compiling tool. It translates CUDA to HIP and reverse, either using a Clang-based tool, or a sed-like Perl script. ==== GPUFORT ==== Like HIPIFY, GPUFORT is a tool compiling source code into other third-generation-language sources, allowing users to migrate from CUDA Fortran to HIP Fortran. It is also in the repertoire of research projects, even more so. === High-level === ROCm high-level libraries are usually consumed directly by application software, such as machine learning frameworks. Most of the following libraries are in the General Matrix Multiply (GEMM) category, which GPU architecture excels at. The majority of these user-facing libraries comes in dual-form: hip for the indirection layer that can route to Nvidia hardware, and roc for the AMD implementation. ==== rocBLAS / hipBLAS ==== rocBLAS and hipBLAS are central in high-level libraries, it is the AMD implementation for Basic Linear Algebra Subprograms. It uses the library Tensile privately. ==== rocSOLVER / hipSOLVER ==== This pair of libraries constitutes the LAPACK implementation for ROCm and is strongly coupled to rocBLAS. === Utilities === ROCm developer tools: Debug, tracer, profiler, System Management Interface, Validation suite, Cluster management. GPUOpen tools: GPU analyzer, memory visualizer... External tools: radeontop (TUI overview) == Comparison with competitors == ROCm competes with other GPU computing stacks: Nvidia CUDA and Intel OneAPI. === Nvidia CUDA === Nvidia's CUDA is closed-source, whereas AMD ROCm is open source. There is open-source software built on top of the closed-source CUDA, for instance RAPIDS. CUDA is able to run on consumer GPUs, whereas ROCm support is mostly offered for professional hardware such as AMD Instinct and AMD Radeon Pro. Nvidia provides a C/C++-centered frontend and its Parallel Thread Execution (PTX) LLVM GPU backend as the Nvidia CUDA Compiler (NVCC). === Intel OneAPI === All the oneAPI corresponding libraries are published on its GitHub Page. ==== Unified Acceleration Foundation (UXL) ==== Unified Acceleration Foundation (UXL) is a new technology consortium that are working on the continuation of the OneAPI initiative, with the goal to create a new open standard accelerator software ecosystem, related open standards and specification projects through Working Groups and Specia

History of machine translation

Machine translation is a sub-field of computational linguistics that investigates the use of software to translate text or speech from one natural language to another. In the 1950s, machine translation became a reality in research, although references to the subject can be found as early as the 17th century. The Georgetown experiment, which involved successful fully automatic translation of more than sixty Russian sentences into English in 1954, was one of the earliest recorded projects. Researchers of the Georgetown experiment asserted their belief that machine translation would be a solved problem within a few years. In the Soviet Union, similar experiments were performed shortly after. Consequently, the success of the experiment ushered in an era of significant funding for machine translation research in the United States. The achieved progress was much slower than expected; in 1966, the ALPAC report found that ten years of research had not fulfilled the expectations of the Georgetown experiment and resulted in dramatically reduced funding. Interest grew in statistical models for machine translation, which became more common and also less expensive in the 1980s as available computational power increased. Although there exists no autonomous system of "fully automatic high quality translation of unrestricted text," there are many programs now available that are capable of providing useful output within strict constraints. Several of these programs are available online, such as Google Translate and the SYSTRAN system that powers AltaVista's BabelFish (which was replaced by Microsoft Bing translator in May 2012). == The beginning == The origins of machine translation can be traced back to the work of Al-Kindi, a 9th-century Arabic cryptographer who developed techniques for systemic language translation, including cryptanalysis, frequency analysis, and probability and statistics, which are used in modern machine translation. The idea of machine translation later appeared in the 17th century. In 1629, René Descartes proposed a universal language, with equivalent ideas in different tongues sharing one symbol. In the mid-1930s the first patents for "translating machines" were applied for by Georges Artsrouni, for an automatic bilingual dictionary using punched tape. Russian Peter Troyanskii submitted a more detailed proposal that included both the bilingual dictionary and a method for dealing with grammatical roles between languages, based on the grammatical system of Esperanto. This system was separated into three stages: stage one consisted of a native-speaking editor in the source language to organize the words into their logical forms and to exercise the syntactic functions; stage two required the machine to "translate" these forms into the target language; and stage three required a native-speaking editor in the target language to normalize this output. Troyanskii's proposal remained unknown until the late 1950s, by which time computers were well-known and utilized. == The early years == The first set of proposals for computer based machine translation was presented in 1949 by Warren Weaver, a researcher at the Rockefeller Foundation, "Translation memorandum". These proposals were based on information theory, successes in code breaking during the Second World War, and theories about the universal principles underlying natural language. A few years after Weaver submitted his proposals, research began in earnest at many universities in the United States. On 7 January 1954 the Georgetown–IBM experiment was held in New York at the head office of IBM. This was the first public demonstration of a machine translation system. The demonstration was widely reported in the newspapers and garnered public interest. The system itself, however, was no more than a "toy" system. It had only 250 words and translated 49 carefully selected Russian sentences into English – mainly in the field of chemistry. Nevertheless, it encouraged the idea that machine translation was imminent and stimulated the financing of the research, not only in the US but worldwide. Early systems used large bilingual dictionaries and hand-coded rules for fixing the word order in the final output which was eventually considered too restrictive in linguistic developments at the time. For example, generative linguistics and transformational grammar were exploited to improve the quality of translations. During this period operational systems were installed. The United States Air Force used a system produced by IBM and Washington University in St. Louis, while the Atomic Energy Commission and Euratom, in Italy, used a system developed at Georgetown University. While the quality of the output was poor it met many of the customers' needs, particularly in terms of speed. At the end of the 1950s, Yehoshua Bar-Hillel was asked by the US government to look into machine translation, to assess the possibility of fully automatic high-quality translation by machines. Bar-Hillel described the problem of semantic ambiguity or double-meaning, as illustrated in the following sentence: Little John was looking for his toy box. Finally he found it. The box was in the pen. The word pen may have two meanings: the first meaning, something used to write in ink with; the second meaning, a container of some kind. To a human, the meaning is obvious, but Bar-Hillel claimed that without a "universal encyclopedia" a machine would never be able to deal with this problem. At the time, this type of semantic ambiguity could only be solved by writing source texts for machine translation in a controlled language that uses a vocabulary in which each word has exactly one meaning. == The 1960s, the ALPAC report and the seventies == Research in the 1960s in both the Soviet Union and the United States concentrated mainly on the Russian–English language pair. The objects of translation were chiefly scientific and technical documents, such as articles from scientific journals. The rough translations produced were sufficient to get a basic understanding of the articles. If an article discussed a subject deemed to be confidential, it was sent to a human translator for a complete translation; if not, it was discarded. A great blow came to machine-translation research in 1966 with the publication of the ALPAC report. The report was commissioned by the US government and delivered by ALPAC, the Automatic Language Processing Advisory Committee, a group of seven scientists convened by the US government in 1964. The US government was concerned that there was a lack of progress being made despite significant expenditure. The report concluded that machine translation was more expensive, less accurate and slower than human translation, and that despite the expenditures, machine translation was not likely to reach the quality of a human translator in the near future. The report recommended, however, that tools be developed to aid translators – automatic dictionaries, for example – and that some research in computational linguistics should continue to be supported. The publication of the report had a profound impact on research into machine translation in the United States, and to a lesser extent the Soviet Union and United Kingdom. Research, at least in the US, was almost completely abandoned for over a decade. In Canada, France and Germany, however, research continued. In the US the main exceptions were the founders of SYSTRAN (Peter Toma) and Logos (Bernard Scott), who established their companies in 1968 and 1970 respectively and served the US Department of Defense. In 1970, the SYSTRAN system was installed for the United States Air Force, and subsequently by the Commission of the European Communities in 1976. The METEO System, developed at the Université de Montréal, was installed in Canada in 1977 to translate weather forecasts from English to French, and was translating close to 80,000 words per day or 30 million words per year until it was replaced by a competitor's system on 30 September 2001. While research in the 1960s concentrated on limited language pairs and input, demand in the 1970s was for low-cost systems that could translate a range of technical and commercial documents. This demand was spurred by the increase of globalisation and the demand for translation in Canada, Europe, and Japan. == The 1980s and early 1990s == By the 1980s, both the diversity and the number of installed systems for machine translation had increased. A number of systems relying on mainframe technology were in use, such as SYSTRAN, Logos, Ariane-G5, and Metal. As a result of the improved availability of microcomputers, there was a market for lower-end machine translation systems. Many companies took advantage of this in Europe, Japan, and the USA. Systems were also brought onto the market in China, Eastern Europe, Korea, and the Soviet Union. During the 1980s there was a lot of activity in MT in Japan especially. With the fifth-generation co

Outline of electronics

The following outline is provided as an overview of and topical guide to electronics: Electronics – branch of physics, engineering and technology dealing with electrical circuits that involve active semiconductor components and associated passive interconnection technologies. == Branches == === Classical electronics === Analog electronics Digital electronics Electronic instrumentation Electronic engineering Microelectronics Optoelectronics Power electronics Printed electronics Semiconductor technology Schematic capture Thermal management Automation Electronics === Advanced topics === Atomtronics Bioelectronics Failure modes of electronics Flexible electronics Low-power electronics Microelectromechanical systems (MEMS) Molecular electronics Nanoelectronics Organic electronics Photonics Piezotronics Quantum electronics Spintronics === History of electronics === History of electronic engineering History of radar History of radio History of television == General concepts == === Data converters === Analog-to-digital converters (ADC) Aliasing Successive approximation ADC Dual-slope ADC Quantization Sensor resolution Sampling Delta-sigma ADC Digital-to-analog converters (DAC) Digital potentiometer Binary weighted resistor converter Charge distribution DAC Pulse width modulator Reconstruction filter The R2R ladder === Digital electronics === Binary decision diagrams Boolean algebra Combinational logic Counters (digital) De Morgan's laws Digital circuit Formal verification Karnaugh maps Logic families Logic gate Logic minimization Logic simulation Logic synthesis Registers Sequential logic State machines Truth tables Transparent latch === Electrical element/discretes === Passive elements: Capacitor Inductor Memristor Resistor Transformer Active elements: Diode Zener diode Light-emitting diode PIN diode Schottky diode Avalanche diode Laser diode Microcontroller Operational amplifier Thyristor DIAC TRIAC IGBT Transistor Bipolar transistor (BJT) Field effect transistor (FET) Darlington transistor Other components Aural devices Battery (electricity) Crystal oscillator Electromechanical devices Sensors Surface acoustic wave (SAW) === Electronics analysis === Electronic packaging Electronic circuit simulation Electronic design automation Electronic noise Mathematical methods in electronics Thermal management of electronic devices and systems === Electronic circuits === Amplifiers Differential amplifiers Feedback amplifiers Power amplifiers Comparators Converters Filters Active filters Passive filters Digital filters Oscillators Phase-locked loops Timers === Electronic equipment === Air conditioner Breathalyzer Central heating Clothes dryer Computer/Notebook Dishwasher Freezer Home robot Home entertainment system Information technologies Cooker Microwave oven Refrigerator Robotic vacuum cleaner Tablet Telephone Water heater Washing machine === Television === Analog television History of television Television show Television broadcaster Timeline of the introduction of television in countries Mechanical television Color television Digital television Digital television transition Smart television Streaming television Internet Protocol television 3D television Terrestrial television ==== Television broadcasting ==== === Electronic instrumentation === Ammeter Capacitance meter Distortionmeter Electric energy meter LCR meter Microwave power meter Multimeter Network analyzer Ohmmeter Oscilloscope Psophometer Q meter Signal analyzer Signal generator Spectrum analyzer Transistor tester Tube tester Wattmeter Vectorscope Video signal generator Voltmeter VU meter === Memory technology === Flash memory Hard drive systems Optical storage Probe Storage Programmable read-only memory Read-only memory Solid-state drive (SSD) Volatile memory === Microcontrollers === Features Analog-to-digital converter Central processing unit (CPU) Clock generator (Quartz timing crystal, resonator or RC circuit) Debugging support Digital-to-analog converters Discrete input and output bits In-circuit programming Non-volatile memory (ROM, EPROM, EEPROM or Flash) Peripherals (Timers, event counters, PWM generators, and watchdog) Serial interface (Input/output such as serial ports (UARTs)) Serial communications (I²C, Serial Peripheral Interface and Controller Area Network) Volatile memory (RAM) 8-bit microcontroller families: AVR - PIC - COP8 - MCS-48 - MCS-51 - Z8 - eZ80 - HC08 - HC11 - H8 - PSoC Some notable suppliers: ARM Atmel Cypress Semiconductor Freescale Intel MIPS Microchip Technology NXP Semiconductors Parallax Propeller PowerPC Rabbit 2000 Renesas RX, V850 Silicon Laboratories STMicroelectronics Texas Instruments Toshiba TLCS === Optoelectronics === Optical fiber Optical properties Optical receivers Optical system design Optical transmitters === Physical laws === Ampère's law Coulomb's law Faraday's law of induction/Faraday-Lenz law Gauss's law Kirchhoff's circuit laws Current law Voltage law Maxwell's equations Gauss's law Faraday's law of induction Ampère's law Ohm's law === Power electronics === Power Devices Gate turn-off thyristor MOS-controlled thyristor (MCT) Power BJT/MOSFET Static induction devices Electric power conversion DC to DC DC to DC converter Voltage stabiliser Linear regulator AC to DC Rectifier Mains power supply unit (PSU) Switched-mode power supply DC to AC Inverter AC to AC Cycloconverter Transformer Variable frequency transformer Voltage converter Voltage regulator Power applications Automotive applications Capacitor charging applications Electronic ballasts Energy harvesting technologies Flexible AC transmission systems (FACTS) High frequency inverters HVDC transmission Motor controller Photovoltaic system Conversion Power factor correction circuits Power supply Renewable energy sources Switching power converters Uninterruptible power supply Wind power === Programmable devices === Application-specific integrated circuit (ASIC) Complex programmable logic device (CPLD) Erasable programmable logic device (EPLD) Simple programmable logic device (SPLD) Macrocell array Programmable array logic (PAL) Programmable logic array (PLA) Programmable logic device (PLD) Field-programmable gate array (FPGA) VHSIC Hardware Description Language (VHDL) Verilog Hardware Description Language Some notable suppliers: Altera - Atmel - Cypress Semiconductor - Lattice Semiconductor - Xilinx === Semiconductors theory === Properties Bipolar junction transistors Capacitance voltage profiling Charge carrier Charge-transfer complex Deep-level transient spectroscopy Depletion region Density of states Diode modelling Direct band gap Electronic band structure Energy level Exciton Field-effect transistors Metal–semiconductor junction MOSFETs N-type semiconductor Organic semiconductors P–n junction P-type semiconductor Photoelectric effect Quantum tunneling Semiconductor chip Semiconductor detector Solar cell Transistor model Thin film Tight-binding model Device Fabrication Semiconductor device fabrication Semiconductor industry Semiconductor consolidation == Applications == Audio electronics Automotive electronics Avionics Control Systems Consumer electronics Data acquisition E-health Electronic book Electronics industry Electronic warfare Embedded systems Home automation Integrated circuits Marine electronics Microwave technology Military electronics Multimedia Nuclear electronics Open hardware Radar and Radionavigation Radio electronics Terahertz technology Video hardware Wired and Wireless Communications

Media preservation

Preservation of documents, pictures, recordings, digital content, etc., is a major aspect of archival science. It is also an important consideration for people who are creating time capsules, family history, historical documents, scrapbooks and family trees. Common storage media are not permanent, and there are few reliable methods of preserving documents and pictures for the future. == Paper/prints (photos) == Color negatives and ordinary color prints may fade away to nothing in a relatively short period if not stored and handled properly. This happens even if the negatives and prints are kept in the dark, because ambient light is not the determining factor, but heat and humidity are. The color degradation is the result of the dyes used in the color processes. Because color processing results in a less stable image than traditional black-and-white processing, black-and-white pictures from the 1920s are more likely to survive long-term than color films and photographs from after the middle 20th century. Black-and-white photographic films using silver halide emulsions are the only film types that have proven to last for archival storage. The determining factors for longevity include the film base type, proper processing (develop, stop, fix and wash) and proper storage. Early films used a Cellulose nitrate base which was prone to decomposition and highly flammable. Nitrate film was replaced with acetate-base films. These Cellulose acetate films were later discovered to outgass acids (also referred to as vinegar syndrome). Acetate films were replaced in the early 1980s by polyester film base materials which have been determined to be more stable than film stocks with a nitrate or acetate base. Color prints made on most inkjet printers look very good at first but they have a very short lifespan, measured in months rather than in years. Even prints from commercial photo labs will start to fade in a matter of years if not processed properly and stored in cool, dry environments. == Documents/books == With documents for which the media are not so critical as what the documents contain, the information in documents can be copied by using photocopiers and image scanners. Books and manuscripts can also have their information saved without destruction by using a book scanner. Where the medium itself needs to be preserved, for example if a document is a crayon sketch by a famous artist on paper, a complex process of preservation may be used. Depending on the condition and importance of the item this can include gluing the media onto more stable media, or protective enclosing of the media. Polyester sleeves, acid-free folders, and pH buffered document boxes are common supportive protective enclosures whose selection must match the media's chemical and physical properties. Other considerations in preserving paper/books are: Damaging light, particularly UV light, which fades and destroys media over time by breaking down the molecules. Atmosphere contains small traces of sulfur dioxide and nitric acid which turn media yellow and break the fibers down. Humidity and moisture also aid in the breakdown of media. If there is too much, the document can be attacked by bacteria, and if too little, cellulose material breaks down. Temperature, particularly elevated ones, can destroy some media. Low temperatures can cause the water to form crystals which expands destroying the structure of paper-based documents. == Online photo albums == Although there are many websites that allow the upload of photographs and videos, digital preservation for the long-term is still considered an issue. There is a lack of confidence that such websites are capable of storing data for long periods of time (ex. 50 years) without data degradation or loss. == Optical media - CD, DVD, Blu-ray, M-Disc == Write-once optical media, such as CD-Rs and DVD-Rs, typically contain an organic dye that distinguishes data reading from data writing based on the dye's transparency along the disc. Conventional CDs and DVDs have finite shelf-life due to natural degradation of the dye; the newer M-DISC uses inorganic material technology to produce molded DVDs and Blu-Rays (up to 3-layer 100GB BDXL) with a claimed lifespan of 100-1000 years if stored correctly with most BD & BDXL rated read/writers enabling the higher power mode for the M-Disc format after 2011. The National Archives and Records Administration lists published life expectancies to be 10 or 25 years or more for normal CDs and DVDs and conservative life expectancies to be between 2 and 5 years. Storage environments, such as temperature and humidity, as well as handling conditions such as frequency of media use and compatibility between the recorder and media, affect media shelf-life. Improvements in media storage and migrations to new recording technologies can make certain formats obsolete within their respective lifespan. Technologists have pointed to internet streaming services, where services such as video-on-demand have contributed to the 33 percent decline in DVD sales the past 5 years, as a challenge for digital preservation. == Magnetic media - video cassettes, tapes, hard drives == Magnetic media such as audio and video tape and floppy disks also have limited life spans. Audio and video tapes require specific care and handling to ensure that the recorded information will be preserved. For information that must be preserved indefinitely, periodic transcription from old media to new ones is necessary, not only because the media are unstable but also because the recording technology may become obsolete. Magnetic media also deteriorates naturally with typical shelf lives between 10 and 20 years. Magnetic tape can degrade from binder hydrolysis or magnetic remanence decay. Binder hydrolysis, also known as sticky-shed syndrome, refers to the breakdown of binder, or glue, that holds the magnetic particles to the polyester base of the tape. Tapes which have been stored in hot, humid conditions are particularly vulnerable to this phenomenon and may suffer from accelerated degradation. Severe binder can cause the magnetic material to fall off or sheds from the base, leaving a pile of dust and clear backing. Archivists can bake the tape, which evaporates water molecules on the tape, to temporarily restore the binder before making a copy. Magnetic tape can also be destabilized by magnetic remanence decay, which refers to the weakening of the tape's magnetization over time. This weakens the affected tape's readability, leading to reduced sound clarity and volume or picture hue and contrast. Baking the tape will not restore magnetization. Media at risk include recorded media such as master audio recordings of symphonies and videotape recordings of the news gathered over the last 40 years. Threats to media that must be considered when archiving important record media include accidental erasure, physical loss due to disasters such as fires and floods, and media degradation. Along with the actual media being degraded over the years, the machines that are available to play back or reproduce the audio sources are becoming archaic themselves. Manufacturers and their support (parts, technical updates) for their machines have disappeared throughout the years. Even if the medium is vaulted and archived correctly, the mechanical properties of the machines have deteriorated to the point that they could do more harm than good to the tape being played. Many major film studios are now backing up their libraries by converting them to electronic media files, such as .AIFF or .WAV-based files via digital audio workstations. That way, even if the digital platform manufacturer goes out of business or no longer supports their product, the files can still be played on any common computer. There is a detailed process that must take place previous to the final archival product now that a digital solution is in place. Sample rates and their conversion and reference speed are both critical in this process. In floppy disks, the lubricants inside the plastic jackets of many older floppies promote the decay of the magnetic medium. Also, the alignment of the magnetic particles of the disk substrate may gradually degrade, leading to a loss of formatting and data. Early laser disk media were prone to degradation as the layers of the disk substrate were bonded with an adhesive that was vulnerable to decay and would crumble over time. This would lead the different layers of the disk to peel apart, damaging the pitted data surface and rendering the disk unreadable.

Mean opinion score

Mean opinion score (MOS) is a measure used in the domain of Quality of Experience and telecommunications engineering, representing overall quality of a stimulus or system. It is the arithmetic mean over all individual "values on a predefined scale that a subject assigns to his opinion of the performance of a system quality". Such ratings are usually gathered in a subjective quality evaluation test, but they can also be algorithmically estimated. MOS is a commonly used measure for video, audio, and audiovisual quality evaluation, but not restricted to those modalities. ITU-T has defined several ways of referring to a MOS in Recommendation ITU-T P.800.1, depending on whether the score was obtained from audiovisual, conversational, listening, talking, or video quality tests. == Rating scales and mathematical definition == The MOS is expressed as a single rational number, typically in the range 1–5, where 1 is lowest perceived quality, and 5 is the highest perceived quality. Other MOS ranges are also possible, depending on the rating scale that has been used in the underlying test. The Absolute Category Rating scale is very commonly used, which maps ratings between Bad and Excellent to numbers between 1 and 5, as seen in below table. Other standardized quality rating scales exist in ITU-T Recommendations (such as ITU-T P.800 or ITU-T P.910). For example, one could use a continuous scale ranging between 1–100. Which scale is used depends on the purpose of the test. In certain contexts there are no statistically significant differences between ratings for the same stimuli when they are obtained using different scales. The MOS is calculated as the arithmetic mean over single ratings performed by human subjects for a given stimulus in a subjective quality evaluation test. Thus: M O S = ∑ n = 1 N R n N {\displaystyle MOS={\frac {\sum _{n=1}^{N}{R_{n}}}{N}}} Where R {\displaystyle R} are the individual ratings for a given stimulus by N {\displaystyle N} subjects. == Properties of the MOS == The MOS is subject to certain mathematical properties and biases. In general, there is an ongoing debate on the usefulness of the MOS to quantify Quality of Experience in a single scalar value. When the MOS is acquired using a categorical rating scales, it is based on – similar to Likert scales – an ordinal scale. In this case, the ranking of the scale items is known, but their interval is not. Therefore, it is mathematically incorrect to calculate a mean over individual ratings in order to obtain the central tendency; the median should be used instead. However, in practice and in the definition of MOS, it is considered acceptable to calculate the arithmetic mean. It has been shown that for categorical rating scales (such as ACR), the individual items are not perceived equidistant by subjects. For example, there may be a larger "gap" between Good and Fair than there is between Good and Excellent. The perceived distance may also depend on the language into which the scale is translated. However, there exist studies that could not prove a significant impact of scale translation on the obtained results. Several other biases are present in the way MOS ratings are typically acquired. In addition to the above-mentioned issues with scales that are perceived non-linearly, there is a so-called "range-equalization bias": subjects, over the course of a subjective experiment, tend to give scores that span the entire rating scale. This makes it impossible to compare two different subjective tests if the range of presented quality differs. In other words, the MOS is never an absolute measure of quality, but only relative to the test in which it has been acquired. For the above reasons – and due to several other contextual factors influencing the perceived quality in a subjective test – a MOS value should only be reported if the context in which the values have been collected in is known and reported as well. MOS values gathered from different contexts and test designs therefore should not be directly compared. Recommendation ITU-T P.800.2 prescribes how MOS values should be reported. Specifically, P.800.2 says:it is not meaningful to directly compare MOS values produced from separate experiments, unless those experiments were explicitly designed to be compared, and even then the data should be statistically analysed to ensure that such a comparison is valid. == MOS for speech and audio quality estimation == MOS historically originates from subjective measurements where listeners would sit in a "quiet room" and score a telephone call quality as they perceived it. This kind of test methodology had been in use in the telephony industry for decades and was standardized in Recommendation ITU-T P.800. It specifies that "the talker should be seated in a quiet room with volume between 30 and 120 m³ and a reverberation time less than 500 ms (preferably in the range 200–300 ms). The room noise level must be below 30 dBA with no dominant peaks in the spectrum." Requirements for other modalities were similarly specified in later ITU-T Recommendations. == MOS estimation using quality models == Obtaining MOS ratings may be time-consuming and expensive as it requires the recruitment of human assessors. For various use cases such as codec development or service quality monitoring purposes – where quality should be estimated repeatedly and automatically – MOS scores can also be predicted by objective quality models, which typically have been developed and trained using human MOS ratings. A question that arises from using such models is whether the MOS differences produced are noticeable to the users. For example, when rating images on a five point MOS scale, an image with a MOS equal to 5 is expected to be noticeably better in quality than one with a MOS equal to 1. Contrary to that, it is not evident whether an image with a MOS equal to 3.8 is noticeably better in quality than one with a MOS equal to 3.6. Research conducted on determining the smallest MOS difference that is perceptible to users for digital photographs showed that a MOS difference of approximately 0.46 is required in order for 75% of the users to be able to detect the higher quality image. Nevertheless, image quality expectation, and hence MOS, changes over time with the change of user expectations. As a result, minimum noticeable MOS differences determined using analytical methods such as in may change over time.

Mobile simulator

A mobile simulator is a software application for a personal computer which creates a virtual machine version of a mobile device, such as a mobile phone, iPhone, other smartphone, or calculator, on the computer. This may sometimes also be termed an emulator. The mobile simulator allows the user to use features and run applications on the virtual mobile on their computer as though it was the actual mobile device. A mobile simulator lets you test a website and determine how well it performs on various types of mobile devices. A good simulator tests mobile content quickly on multiple browsers and emulates several device profiles simultaneously. This allows analysis of mobile content in real-time, locate errors in code, view rendering in an environment that simulates the mobile browser, and optimize the site for performance. Mobile simulators may be developed using programming languages such as Java, .NET and JavaScript.

Harmonic

In physics, acoustics, and telecommunications, a harmonic is a sinusoidal wave with a frequency that is a positive integer multiple of the fundamental frequency of a periodic signal. The fundamental frequency is also called the 1st harmonic; the other harmonics are known as higher harmonics. As all harmonics are periodic at the fundamental frequency, the sum of harmonics is also periodic at that frequency. The set of harmonics forms a harmonic series. The term is employed in various disciplines, including music, physics, acoustics, electronic power transmission, radio technology, and other fields. For example, if the fundamental frequency is 50 Hz, a common AC power supply frequency, the frequencies of the first three higher harmonics are 100 Hz (2nd harmonic), 150 Hz (3rd harmonic), 200 Hz (4th harmonic) and any addition of waves with these frequencies is periodic at 50 Hz. An n {\displaystyle \ n} th characteristic mode, for n > 1 , {\displaystyle \ n>1\ ,} will have nodes that are not vibrating. For example, the 3rd characteristic mode will have nodes at 1 3 L {\displaystyle \ {\tfrac {1}{3}}\ L\ } and 2 3 L , {\displaystyle \ {\tfrac {2}{3}}\ L\ ,} where L {\displaystyle \ L\ } is the length of the string. In fact, each n {\displaystyle \ n} th characteristic mode, for n {\displaystyle \ n\ } not a multiple of 3, will not have nodes at these points. These other characteristic modes will be vibrating at the positions 1 3 L {\displaystyle \ {\tfrac {1}{3}}\ L\ } and 2 3 L . {\displaystyle \ {\tfrac {2}{3}}\ L~.} If the player gently touches one of these positions, then these other characteristic modes will be suppressed. The tonal harmonics from these other characteristic modes will then also be suppressed. Consequently, the tonal harmonics from the n {\displaystyle \ n} th characteristic characteristic modes, where n {\displaystyle \ n\ } is a multiple of 3, will be made relatively more prominent. In music, harmonics are used on string instruments and wind instruments as a way of producing sound on the instrument, particularly to play higher notes and, with strings, obtain notes that have a unique sound quality or "tone colour". On strings, bowed harmonics have a "glassy", pure tone. On stringed instruments, harmonics are played by touching (but not fully pressing down the string) at an exact point on the string while sounding the string (plucking, bowing, etc.); this allows the harmonic to sound, a pitch which is always higher than the fundamental frequency of the string. == Terminology == Harmonics may be called "overtones", "partials", or "upper partials", and in some music contexts, the terms "harmonic", "overtone" and "partial" are used fairly interchangeably. But more precisely, the term "harmonic" includes all pitches in a harmonic series (including the fundamental frequency) while the term "overtone" only includes pitches above the fundamental. == Characteristics == A whizzing, whistling tonal character, distinguishes all the harmonics both natural and artificial from the firmly stopped intervals; therefore their application in connection with the latter must always be carefully considered. Most acoustic instruments emit complex tones containing many individual partials (component simple tones or sinusoidal waves), but the untrained human ear typically does not perceive those partials as separate phenomena. Rather, a musical note is perceived as one sound, the quality or timbre of that sound being a result of the relative strengths of the individual partials. Many acoustic oscillators, such as the human voice or a bowed violin string, produce complex tones that are more or less periodic, and thus are composed of partials that are nearly matched to the integer multiples of fundamental frequency and therefore resemble the ideal harmonics and are called "harmonic partials" or simply "harmonics" for convenience (although it's not strictly accurate to call a partial a harmonic, the first being actual and the second being theoretical). Oscillators that produce harmonic partials behave somewhat like one-dimensional resonators, and are often long and thin, such as a guitar string or a column of air open at both ends (as with the metallic modern orchestral transverse flute). Wind instruments whose air column is open at only one end, such as trumpets and clarinets, also produce partials resembling harmonics. However they only produce partials matching the odd harmonics—at least in theory. In practical use, no real acoustic instrument behaves as perfectly as the simplified physical models predict; for example, instruments made of non-linearly elastic wood, instead of metal, or strung with gut instead of brass or steel strings, tend to have not-quite-integer partials. Partials whose frequencies are not integer multiples of the fundamental are referred to as inharmonic partials. Some acoustic instruments emit a mix of harmonic and inharmonic partials but still produce an effect on the ear of having a definite fundamental pitch, such as pianos, strings plucked pizzicato, vibraphones, marimbas, and certain pure-sounding bells or chimes. Antique singing bowls are known for producing multiple harmonic partials or multiphonics. Other oscillators, such as cymbals, drum heads, and most percussion instruments, naturally produce an abundance of inharmonic partials and do not imply any particular pitch, and therefore cannot be used melodically or harmonically in the same way other instruments can. Building on of Sethares (2004), dynamic tonality introduces the notion of pseudo-harmonic partials, in which the frequency of each partial is aligned to match the pitch of a corresponding note in a pseudo-just tuning, thereby maximizing the consonance of that pseudo-harmonic timbre with notes of that pseudo-just tuning. == Partials, overtones, and harmonics == An overtone is any partial higher than the lowest partial in a compound tone. The relative strengths and frequency relationships of the component partials determine the timbre of an instrument. The similarity between the terms overtone and partial sometimes leads to their being loosely used interchangeably in a musical context, but they are counted differently, leading to some possible confusion. In the special case of instrumental timbres whose component partials closely match a harmonic series (such as with most strings and winds) rather than being inharmonic partials (such as with most pitched percussion instruments), it is also convenient to call the component partials "harmonics", but not strictly correct, because harmonics are numbered the same even when missing, while partials and overtones are only counted when present. This chart demonstrates how the three types of names (partial, overtone, and harmonic) are counted (assuming that the harmonics are present): In many musical instruments, it is possible to play the upper harmonics without the fundamental note being present. In a simple case (e.g., recorder) this has the effect of making the note go up in pitch by an octave, but in more complex cases many other pitch variations are obtained. In some cases it also changes the timbre of the note. This is part of the normal method of obtaining higher notes in wind instruments, where it is called overblowing. The extended technique of playing multiphonics also produces harmonics. On string instruments it is possible to produce very pure sounding notes, called harmonics or flageolets by string players, which have an eerie quality, as well as being high in pitch. Harmonics may be used to check at a unison the tuning of strings that are not tuned to the unison. For example, lightly fingering the node found halfway down the highest string of a cello produces the same pitch as lightly fingering the node ⁠ 1 / 3 ⁠ of the way down the second highest string. For the human voice see Overtone singing, which uses harmonics. While it is true that electronically produced periodic tones (e.g. square waves or other non-sinusoidal waves) have "harmonics" that are whole number multiples of the fundamental frequency, practical instruments do not all have this characteristic. For example, higher "harmonics" of piano notes are not true harmonics but are "overtones" and can be very sharp, i.e. a higher frequency than given by a pure harmonic series. This is especially true of instruments other than strings, brass, or woodwinds. Examples of these "other" instruments are xylophones, drums, bells, chimes, etc.; not all of their overtone frequencies make a simple whole number ratio with the fundamental frequency. (The fundamental frequency is the reciprocal of the longest time period of the collection of vibrations in some single periodic phenomenon.) == On stringed instruments == Harmonics may be singly produced [on stringed instruments] (1) by varying the point of contact with the bow, or (2) by slightly pressing the string at the nodes, or divisions of its aliquot parts ( 1 2 {\displaystyle {\tfrac {1}{2}}} , 1