Problem solving environment

Last updated

A problem solving environment (PSE) is a completed, integrated and specialised computer software for solving one class of problems, combining automated problem-solving methods with human-oriented tools for guiding the problem resolution. A PSE may also assist users in formulating problem resolution. A PSE may also assist users in formulating problems, selecting algorithm, simulating numerical value and viewing and analysing results.

Contents

Purpose of PSE

Many PSEs were introduced in the 1990s. They use the language of the respective field and often employ modern graphical user interfaces. The goal is to make the software easy to use for specialists in fields other than computer science. PSEs are available for generic problems like data visualization or large systems of equations and for narrow fields of science or engineering like gas turbine design. [1]

History

The Problem Solving Environment (PSE) released a few years after the release of Fortran and Algol 60. People thought that this system with high-level language would cause elimination of professional programmers. However, surprisingly, PSE has been accepted and even though scientists used it to write programs. [2]

The Problem Solving Environment for Parallel Scientific Computation was introduced in 1960, where this was the first Organised Collections with minor standardisation. [2] In 1970, PSE was initially researched for providing high-class programming language rather than Fortran,[ citation needed ] also Libraries Plotting Packages advent. Development of Libraries were continued, and there were introduction of Emergence of Computational Packages and Graphical systems which is data visualisation. By 1990s, hypertext, point-and-click had moved towards inter-operability. Moving on, a "Software Parts" Industry finally existed. [2]

Throughout a few decades, recently, many PSEs have been developed and to solve problem and also support users from different categories, including education, general programming, CSE software learning, job executing and Grid/Cloud computing.[ citation needed ]

Examples of PSE

Grid-Based Numerical Optimisation

The shell software GOSPEL is an example of how a PSE can be designed for EHL modelling using a Grid resource. With the PSE, one can visualise the optimisation progress, as well as interact with other simulations. [3]

The PSE parallelise and embed many individual numerical calculations in an industrial serial optimisation code. It is built in NAG's IRIS Explorer package to solve EHL and Parallelism problems and can use the gViz libraries, to run all the communication between the PSE and the simulation. It also uses MPI — part of the NAG libraries — which gives significantly quicker and better solutions by combining the maximum levels of continuation. [3]

Moreover, the system is designed to allow users to steer simulations using visualised output. An example is utilising local minima, or layering additional details when around a local in and out of the simulation and it can imagine the information which is produced in any sharp and also still allow to steer the simulation. [4]

Grid-based PSEs for mobile devices

PSEs are require a large amount of resources that strain even the most powerful computers of today. Translating PSEs into software that can be used for mobile devices in an important challenge that faces programmers today. [5]

Grid computing is seen as a solution to the rescue issues of PSEs for mobile devices. This is made possible through a "Brokering Service". This service is started by an initiating device that sends the necessary information for PSE to resolve task. The brokering service then breaks this down into subtasks that distributes the information to various subordinate devices that perform these subtasks. [5] The brokering necessitates an Active Agent Repository (AAR) and a Task Allocation Table (TAT) that both work to manage the subtasks. A Keep-Alive Server is tapped to handle communication between the brokering service and the subordinate devices. The Keep-Alive server relies on a lightweight client application installed in the participating mobile devices.

Security, transparency and dependability are issues that may arise when using the grid for mobile device-based PSEs. [5]

Education Support

There are a revolution for network-based learning and e-learning for education but it is very difficult to collect education data and data of the student activities. TSUNA-TASTE, is developed by T. Teramoto, a PSE to support education and learning processes. This system may create a new idea of the e-learning by supporting teachers and students in computer-related education. It consists of four parts, including agents of students, an education support server, a database system and a Web server. This system makes e-learning more convenient as information is earlier to store and collect for students and teachers.[ citation needed ]

P-NCAS

A computer-assisted parallel program generation support(P-NCAS), is a PSE, creates a new way to reduce the programming hard task for the computer programming. This program can avoid or reduce the chance that huge computer software breaking down so this restrict uncertainty and major accidents in the society. Moreover, partial differential equations(PDEs) problems can be solved by parallel programs which are generated by P-NCAS supports. P-NCAS employs the Single Program Multi Data (SPMD) and uses a decomposition method for the parallelisation. These enable users of P-NCAS to input problems described by PDES, algorithm and discretisation scheme etc., and to view and edit all details through the visualisation and windows for edition. At last, parallel program will be outputted in C language by P-NCAS and also include documents which show everything has inputted in the beginning. [6]

Future Improvement

At first it was difficult doing 2-D EHL problems because of the expense and computer power available. The development of parallel 2-D EHL codes and faster computers have now paved the way for 2-D EHL problem solving to be possible. Friction and lubricant data need a higher level of security given their sensitivity. Accounting for simulations may be difficult because these are done in rapidly and in the thousands. This can be solved by a registration system or a 'directory'. Collaborative PSEs with multiple users will encounter difficulties tracking changes, especially which specific changes were made and when those changes were made. This may also be solved with a directory of changes made. [3]

Secondly, future improvement of the Grid-based PSEs for mobile devices, the group aims to generate new scenarios through manipulation of the control variables available. By changing those control variables, the simulation software is able to create scenarios from each other, allowing for more scrutiny of the conditions in each scenario. It is expected that manipulation of three variables will generate twelve different scenarios. [5]

The variables that we are interested in studying are network stability and device mobility. We feel that these variables will hater the greatest impact on grid performance. Our study will measure performance using task completion time as the primary outcome. [5]

PSE Park

As PSEs grow more complex, the need for computing resources has risen dramatically. Conversely, with PSE applications venturing into fields and environments of growing complexity, the creation of PSEs have become tedious and difficult.

Hirumichi Kobashi and his colleagues have designed a PSE meant to create other PSEs. This has been dubbed as a 'meta PSE' or a PSEs. This was how PSE Park was born.[ citation needed ]

The Framework

The architecture of PSE Park emphasises flexibility and extensibility. These characteristics make it an attractive platform for varied levels of expertise, from entry-level users to developers.[ citation needed ]

PSE Park provides these through its repository of functions. the repository contains modules required to build PSEs. Some of the most basic modules, called Cores, are used as the foundation of PSEs. More complex modules are available for use by programmers. Users access PSE Park through a console linked to the programmers. Once the user is register, he/she has assess to the repository. A PIPE server is used as the mediator between the user and PSE Park. It grants access to modules and constructs the selected functions into a PSE.[ citation needed ]

Developers can develop functions, or even whole PSEs, for inclusion into the repository. Entry-level and expert users can access these pre-made PSEs for their own purposes. Given this architecture, PSE Park requires a cloud computing environment to support the enormous data sharing that occurs during PSE use and development.[ citation needed ]

The PIPE Server

The PIPE Server differs from other servers in terms of how it handles intermediate results. Since the PIPE Server acts as a mediator in a meta-PSE, any results or variables generated by a core module are retrieved as global variables to be used by the next core. The sequence or hierarchy is defined by the user. The way, same name variables are revised to the new set of variables.[ citation needed ]

Another important characteristics of the PIPE Server is that it executes each module or core independently. This means that the language of each module does not have to be the same as the others in the PSE. Modules are implemented depending on the defined hierarchy. This feature brings enormous flexibility for developers and users who have varied backgrounds in programming. The modular format also enables that existing PSEs can be extended and modified easily.[ citation needed ]

Cores

In order be registered, a core must be fully defined. The input and output definitions allow the PIPE server to determine compatibility with other cores and modules. Any lack of definition is flagged by the PIPE server for incompatibility.[ citation needed ]

Registration Engine and Console

The registration engine keeps track of all cores that may be used in PSE Park. A history of use is also created. A core map may be developed in order to help users understand a core or module better. The console is the users' main interface with PSE Park. It is highly visual and diagrammatic, allowing users to better understand the linkages between modules and cores for the PSEs that they are working on.[ citation needed ]

See also

Related Research Articles

<span class="mw-page-title-main">Software</span> Non-tangible executable component of a computer

Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.

In telecommunication, provisioning involves the process of preparing and equipping a network to allow it to provide new services to its users. In National Security/Emergency Preparedness telecommunications services, "provisioning" equates to "initiation" and includes altering the state of an existing priority service or capability.

<span class="mw-page-title-main">Wolfram Mathematica</span> Computational software program

Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimization, plotting functions and various types of data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other programming languages. It was conceived by Stephen Wolfram, and is developed by Wolfram Research of Champaign, Illinois. The Wolfram Language is the programming language used in Mathematica. Mathematica 1.0 was released on June 23, 1988 in Champaign, Illinois and Santa Clara, California.

Grid computing is the use of widely distributed computer resources to reach a common goal. A computing grid can be thought of as a distributed system with non-interactive workloads that involve many files. Grid computing is distinguished from conventional high-performance computing systems such as cluster computing in that grid computers have each node set to perform a different task/application. Grid computers also tend to be more heterogeneous and geographically dispersed than cluster computers. Although a single grid can be dedicated to a particular application, commonly a grid is used for a variety of purposes. Grids are often constructed with general-purpose grid middleware software libraries. Grid sizes can be quite large.

Trusted Computing (TC) is a technology developed and promoted by the Trusted Computing Group. The term is taken from the field of trusted systems and has a specialized meaning that is distinct from the field of confidential computing. With Trusted Computing, the computer will consistently behave in expected ways, and those behaviors will be enforced by computer hardware and software. Enforcing this behavior is achieved by loading the hardware with a unique encryption key that is inaccessible to the rest of the system and the owner.

<span class="mw-page-title-main">System on a chip</span> Micro-electronic component

A system on a chip or system-on-chip is an integrated circuit that integrates most or all components of a computer or other electronic system. These components almost always include on-chip central processing unit (CPU), memory interfaces, input/output devices and interfaces, and secondary storage interfaces, often alongside other components such as radio modems and a graphics processing unit (GPU) – all on a single substrate or microchip. SoCs may contain digital and also analog, mixed-signal and often radio frequency signal processing functions.

<span class="mw-page-title-main">Parallel computing</span> Programming paradigm in which many processes are executed simultaneously

Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. Parallelism has long been employed in high-performance computing, but has gained broader interest due to the physical constraints preventing frequency scaling. As power consumption by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors.

An application program is a computer program designed to carry out a specific task other than one relating to the operation of the computer itself, typically to be used by end-users. Word processors, media players, and accounting software are examples. The collective noun "application software" refers to all applications collectively. The other principal classifications of software are system software, relating to the operation of the computer, and utility software ("utilities").

In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans, and combinations of these. Some computer hardware devices, such as a touchscreen, can both send and receive data through the interface, while others such as a mouse or microphone may only provide an interface to send data to a given system.

ECLiPSe is a software system for the development and deployment of constraint logic programming applications, e.g., in the areas of optimization, planning, scheduling, resource allocation, timetabling, transport, etc. It is also suited for teaching most aspects of combinatorial problem solving, e.g., problem modeling, constraint programming, mathematical programming, and search techniques. It contains constraint solver libraries, a high-level modeling and control language, interfaces to third-party solvers, an integrated development environment and interfaces for embedding into host environments.

<span class="mw-page-title-main">COMSOL Multiphysics</span> Physics and engineering software package

COMSOL Multiphysics is a finite element analysis, solver, and simulation software package for various physics and engineering applications, especially coupled phenomena and multiphysics. The software facilitates conventional physics-based user interfaces and coupled systems of partial differential equations (PDEs). COMSOL provides an IDE and unified workflow for electrical, mechanical, fluid, acoustics, and chemical applications.

API Calculus is a program that solves calculus problems using operating systems within a device that solves calculus problems. In 1989, the PI- Calculus was created by Robin Milner and was very successful throughout the years. The PI Calculus is an extension of the process algebra CCS, a tool that has algebraic languages that are specific to processing and formulating statements. The PI Calculus provides a formal theory for modeling systems and reasoning about their behaviors. In the PI Calculus there are two specific variables such as name and processes. But it was not until 2002 when Shahram Rahimi decided to create an upgraded version of the PI- Calculus and call it the API Calculus. Milner claimed the detailed characteristics of the API Calculus to be its "Communication Ability, Capacity for Cooperation, Capacity for Reasoning and Learning, Adaptive Behavior and Trustworthiness." The main purpose of creating this mobile advancement is to better network and communicate with other operators while completing a task. Unfortunately, the API Calculus is not perfect and has faced a problem with its security system. The language has seven features that was created within the device that the PI Calculus does not have. Since this program is so advanced by the way the software was created and the different abilities that are offered in the program, it is required to be converted to other programming languages so it can be used on various devices and other computing languages. Although the API Calculus is currently being used by various other programming languages, modifications are still being done since the security on the API Calculus is causing problems to users.

<span class="mw-page-title-main">Computer appliance</span> Dedicated computer system

A computer appliance is a computer system with a combination of hardware, software, or firmware that is specifically designed to provide a particular computing resource. Such devices became known as appliances because of the similarity in role or management to a home appliance, which are generally closed and sealed, and are not serviceable by the user or owner. The hardware and software are delivered as an integrated product and may even be pre-configured before delivery to a customer, to provide a turn-key solution for a particular application. Unlike general purpose computers, appliances are generally not designed to allow the customers to change the software and the underlying operating system, or to flexibly reconfigure the hardware.

In computing, virtualization or virtualisation is the act of creating a virtual version of something at the same abstraction level, including virtual computer hardware platforms, storage devices, and computer network resources.

<span class="mw-page-title-main">Emulator</span> System allowing a device to imitate another

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

Web-based simulation (WBS) is the invocation of computer simulation services over the World Wide Web, specifically through a web browser. Increasingly, the web is being looked upon as an environment for providing modeling and simulation applications, and as such, is an emerging area of investigation within the simulation community.

Computation offloading is the transfer of resource intensive computational tasks to a separate processor, such as a hardware accelerator, or an external platform, such as a cluster, grid, or a cloud. Offloading to a coprocessor can be used to accelerate applications including: image rendering and mathematical calculations. Offloading computing to an external platform over a network can provide computing power and overcome hardware limitations of a device, such as limited computational power, storage, and energy.

Dew computing is an information technology (IT) paradigm that combines the core concept of cloud computing with the capabilities of end devices. It is used to enhance the experience for the end user in comparison to only using cloud computing. Dew computing attempts to solve major problems related to cloud computing technology, such as reliance on internet access. Dropbox is an example of the dew computing paradigm, as it provides access to the files and folders in the cloud in addition to keeping copies on local devices. This allows the user to access files during times without an internet connection; when a connection is established again, files and folders are synchronized back to the cloud server.

References

  1. Richard J. Fateman. "Problem solving environment and symbolic computing" (PDF). University of California, Berkeley. Retrieved 2015-11-03.
  2. 1 2 3 Jack Dongarra. "Problem Solving Environments for Parallel Scientific Computation" (PDF). University of Tenn./Oak Ridge National Lab. Retrieved 2015-11-03.
  3. 1 2 3 C.E. Goodyer; M. Berzins; P.K. Jimack; L.E. Scales. "Grid-Based Numerical Optimisation in a Problem Solving Environment" (PDF). The University of Leeds. Retrieved 2015-11-03.
  4. Mark Walkley; Jason Wood & Ken Brodlie. "A Distributed Co-operative Problem Solving Environment" (PDF). The University of Leeds. Retrieved 2015-11-03.
  5. 1 2 3 4 5 Stan Kurkovsky; Bhagyavati; Arris Ray (2004). "Modeling a Grid-Based Problem-Solving Environment for Mobile Devices". p. 135. CiteSeerX   10.1.1.86.6377 .
  6. Stan Kurkovsky; Bhagyavati; Arris Ray (2015). "Modeling a Grid-Based Problem-Solving Environment for Mobile Devices". arXiv: 1503.04501 [physics.comp-ph].